logo

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

видалити перший символ у 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)))>

>

>

Вихід: