Вопрос: Найти текущий каталог и каталог файла [duplicate]


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

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

1444


источник


Ответы:


Чтобы получить полный путь к каталогу, в который содержится файл Python, напишите его в этом файле:

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))

(Обратите внимание, что заклинание выше не будет работать, если вы уже использовали os.chdir()изменить текущий рабочий каталог, так как значение __file__константа относится к текущему рабочему каталогу и не изменяется os.chdir()вызов.)


Чтобы использовать текущую рабочую директорию

import os
cwd = os.getcwd()

Ссылки на документацию для модулей, констант и функций, используемых выше:

  • osа также os.pathмодули.
  • __file__постоянная
  • os.path.realpath(path)(возвраты «канонический путь указанного имени файла, устраняющий любые символические ссылки, встречающиеся на пути» )
  • os.path.dirname(path)(возвраты "имя каталога имени пути path" )
  • os.getcwd()(возвраты "строка, представляющая текущий рабочий каталог" )
  • os.chdir(path)( msgstr "изменить текущий рабочий каталог на path" )

2177



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

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


268



Вы можете найти это полезным в качестве ссылки:

import os

print("Path at terminal when executing this file")
print(os.getcwd() + "\n")

print("This file path, relative to os.getcwd()")
print(__file__ + "\n")

print("This file full path (following symlinks)")
full_path = os.path.realpath(__file__)
print(full_path + "\n")

print("This file directory and name")
path, filename = os.path.split(full_path)
print(path + ' --> ' + filename + "\n")

print("This file directory only")
print(os.path.dirname(full_path))

220



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]

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


47



If you are trying to find the current directory of the file you are currently in:

OS agnostic way:

dirname, filename = os.path.split(os.path.abspath(__file__))

32



Answer to #1:

If you want the current directory, do this:

import os
os.getcwd()

If you want just any folder name and you have the path to that folder, do this:

def get_folder_name(folder):
    '''
    Returns the folder name, given a full folder path
    '''
    return folder.split(os.sep)[-1]

Answer to #2:

import os
print os.path.abspath(__file__)

26



A bit late to the party, but I think the most succinct way to find just the name of your current execution context would be

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

25



If you're using Python 3.4, there is the brand new higher-level pathlib module which allows you to conveniently call pathlib.Path.cwd() to get a Path object representing your current working directory, along with many other new features.

More info on this new API can be found here.


24