Ми можемо отримати розташування (шлях) запущеного файлу сценарію .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
видалити перший символ у Excel
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)))> |
>
>
Вихід:
