Знайдіть шлях до вказаного файлу за допомогою Python

Знайдіть шлях до вказаного файлу за допомогою Python

Ми можемо отримати розташування (шлях) запущеного файлу сценарію .py за допомогою __file__. __файл__ корисний для читання інших файлів і він надає поточне розташування запущеного файлу. Він відрізняється версіями. У Python 3.8 і раніших версіях __file__ повертає шлях, указаний під час виконання Python команда.

Ми можемо отримати відносний шлях, якщо вказано відносний шлях. Якщо ми вказуємо абсолютний шлях, повертається абсолютний шлях. Але в Python 3.9 і пізніших версіях __file__ завжди повертає абсолютний шлях, Модуль ОС надає різні комунальні послуги.

Способи отримання поточного каталогу в Python з ОС

Є багато способів отримати поточний каталог у Python з ОС. Тут ми використовуємо деякі загальновживані способи отримання поточного каталогу в Python з ОС, які наведені нижче.

  • Використання Path.cwd()
  • Використання os.getcwd()
  • Використання pathlib.Path().absolute()
  • Використовуючи os. path.basename
  • Використання os.path.abspath

Знайти шлях до вказаного файлу за допомогою Path.cwd()

Тут важливе місце посідає ідея поточного робочого довідника (CWD). Подумайте про CWD як папку, в якій працює Python. Python припускає, що файл починається в CWD, якщо його викликається просто за ім’ям, тому посилання лише на ім’я працюватиме, лише якщо файл знаходиться в CWD Python. Path.cwd() повертає поточний каталог.

Python3




from> pathlib> import> Path> print> (Path.cwd())>

Вихід:

C:Usersint.suraj.gupta 

Отримати поточний каталог на Python з ОС за допомогою os.getcwd()

Ми можемо отримати абсолютний шлях до поточного робочого каталогу. Таким чином, залежно від версії, що використовується, витягується відносний або абсолютний шлях. Щоб отримати поточний робочий каталог у Python, використовуйте os. getcwd () метод. Ця функція модуля ОС Python повертає рядок, що містить абсолютний шлях до поточного робочого каталогу.

Python3




import> os> print> (> 'Get current working directory : '> , os.getcwd())>

Вихід:

Get current working directory : C:Usersint.suraj.gupta 

Отримати поточний каталог на Python з ОС використовуючи pathlib.Path().absolute()

Ця функція Python Модуль ОС повертає рядок, що містить абсолютний шлях до поточного робочого каталогу.

Python3




import> pathlib> # current working directory> print> (pathlib.Path().absolute())>

Вихід:

C:Usersint.suraj.gupta 

Знайдіть шлях до вказаного файлу за допомогою os.path.basename

Ми можемо отримати ім’я файлу та ім’я каталогу запущеного файлу таким чином. Головне, про що потрібно розуміти __файл__ полягає в тому, що інтерпретатор налаштовує його під час виконання так, щоб Python знає, з яким файлом має справу, коли сценарій використовує декілька модулів. Перевага виклику Path( file__) полягає в тому, що він повертає рядок, який містить шлях і файл, над яким ви зараз працюєте.

  • Ви можете викликати __file__ під час редагування файлу. У результаті, якщо ви спробуєте викликати його з інтерпретатора оболонки, він не виконається.
  • __file__ не працює в a Блокнот Юпітера контекст.

Python3




import> os> print> (> 'File name : '> , os.path.basename(__file__))> print> (> 'Directory Name: '> , os.path.dirname(__file__))>

Вихід:

Знайдіть шлях до вказаного файлу за допомогою os.path.abspath

Це може здатися складним, але os.path.abspath() просто означає, що цей метод повертає шлях до шляху, наданого як аргумент цієї функції. У документації стверджується, що цей метод створює нормалізовану абсолютизовану версію шляху імені шляху.

Приклад 1: Щоб отримати абсолютний шлях до запущеного файлу.

Python3




import> os> print> (> 'Absolute path of file: '> ,> > os.path.abspath(__file__))> print> (> 'Absolute directoryname: '> ,> > os.path.dirname(os.path.abspath(__file__)))>

Вихід:

приклад 2: Якщо ми вкажемо абсолютний шлях у os.path.abspath(), він буде повернений як є, тому якщо __file__ є абсолютним шляхом, жодної помилки не буде, навіть якщо ми встановимо os.path. abspath (__файл__)

Python3




import> os> pythonfile> => 'pathfinding.py'> # if the file is present in current directory,> # then no need to specify the whole location> print> (> 'Path of the file..'> , os.path.abspath(pythonfile))> for> root, dirs, files> in> os.walk(r> 'E:geeksforgeekspath_of_given_file'> ):> > for> name> in> files:> > > # As we need to get the provided python file,> > # comparing here like this> > if> name> => => pythonfile:> > print> (os.path.abspath(os.path.join(root, name)))>

Вихід: