папку создать python Найти текущий каталог и каталог файла




7 Answers

Текущий рабочий каталог: os.getcwd()

А атрибут __file__ может помочь вам узнать, где находится файл, который вы выполняете. Это сообщение SO объясняет все: как мне получить путь к текущему исполняемому файлу в Python?

python перейти в папку

В Python, какие команды можно использовать для поиска:

  1. текущий каталог (где я был в терминале, когда я запускал скрипт Python), и
  2. где файл, который я выполняю?



1. Получить полный путь к текущему каталогу

    >>import os
    >>print os.getcwd()

o / p: "C: \ Users \ admin \ myfolder"

1.Чтобы получить только текущее имя папки каталога

    >>import os
    >>str1=os.getcwd()
    >>str2=str1.split('\\')
    >>n=len(str2)
    >>print str2[n-1]

о / р: «моя_папка»




Если вы используете Python 3.4, есть новый модуль более высокого уровня pathlib который позволяет вам удобно вызвать pathlib.Path.cwd() чтобы получить объект Path представляющий ваш текущий рабочий каталог, а также множество других новых функций.

Более подробную информацию об этом новом API можно найти here .




Немного поздно для вечеринки, но я думаю, что самый краткий способ найти только имя вашего текущего контекста выполнения будет

current_folder_path, current_folder_name = os.path.split(os.getcwd())



Чтобы получить полный путь к текущему каталогу:

os.path.realpath ( '')




Pathlib можно использовать таким образом, чтобы получить каталог, содержащий текущий скрипт:

import pathlib
filepath = pathlib.Path(__file__).resolve().parent



Для вопроса 1 используйте os.getcwd() # get working dir и os.chdir(r'D:\Steam\steamapps\common') # set working dir

Я рекомендую использовать sys.argv[0] для вопроса 2, потому что sys.argv неизменен и поэтому всегда возвращает текущий файл (путь объекта объекта) и не зависит от os.chdir() . Также вы можете сделать следующее:

import os
this_py_file = os.path.realpath(__file__)

# vvv Below comes your code vvv #

но этот фрагмент и sys.argv[0] не будут работать или будут работать wierd при компиляции PyInstaller, потому что магические свойства не установлены на уровне __main__ а sys.argv[0] - это способ, которым вызвал ваш exe (означает, что он становится затронутым по действующей директории).




Related