使用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)))
输出: