📜  使用Python查找给定文件的路径

📅  最后修改于: 2022-05-13 01:55:49.195000             🧑  作者: Mango

使用Python查找给定文件的路径

我们可以通过 __file__ 获取正在运行的脚本文件 .py 的位置(路径)。 __file__对于读取其他文件很有用,它给出了正在运行的文件的当前位置。它在版本上有所不同。在Python 3.8 及更早版本中, __file__ 返回执行Python (或 python3)命令时指定的路径。如果指定了相对路径,我们可以获得相对路径。如果我们指定绝对路径,则返回绝对路径。但是在Python 3.9 及更高版本中, __file__ 始终返回绝对路径,“os”模块提供了各种实用程序。

os.getcwd():我们可以得到当前工作目录的绝对路径。因此,根据所使用的版本,将检索相对路径或绝对路径。

示例 1:

Python3
import os
print('Get current working directory :      ', os.getcwd())
print('Get current file name :    ', __file__)


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


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


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:\geeksforgeeks\path_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)))


输出:

示例2:我们可以通过以下方式获取运行文件的文件名和目录名。

蟒蛇3

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

输出:

查找文件名和目录名的方法

例3:获取运行文件的绝对路径。

蟒蛇3

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

输出:

查找文件和目录名的绝对方法

示例4:如果我们在os.path.abspath()中指定了绝对路径,它会原样返回,所以如果__file__是绝对路径,即使我们设置了os.path.abspath(__file__)也不会出错

蟒蛇3

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:\geeksforgeeks\path_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)))

输出: