Знайдіть шлях до вказаного файлу за допомогою 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)))> |
Вихід: