📅  最后修改于: 2023-12-03 14:49:50.660000             🧑  作者: Mango
在我们的开发日常中,有很多情况需要我们查找指定文件的路径,比如配置文件、数据文件等。Python提供了一些工具来帮我们完成这个任务。
Python的os模块提供了很多与操作系统交互的函数,其中有一个函数os.path.abspath()
可以将一个路径转换为绝对路径。我们可以利用这个函数与os.path.exists()
判断文件是否存在的函数,来寻找给定文件的路径。
例如,查找当前目录下是否存在名为example.txt
的文件,并返回其路径:
import os
filename = 'example.txt'
if os.path.exists(filename):
path = os.path.abspath(filename)
print(f'文件{filename}的路径为{path}')
else:
print(f'文件{filename}不存在')
以上代码中,首先使用os.path.exists()
函数判断文件是否存在,之后利用os.path.abspath()
函数获取其绝对路径,并打印出来。
除了使用os模块,Python的glob模块也提供了很多查找文件路径的函数。其中,glob.glob()
函数可以根据通配符匹配查找符合规则的所有文件,并返回文件路径列表。
例如,查找当前目录下所有扩展名为.txt
的文件路径:
import glob
txt_files = glob.glob('*.txt')
for file in txt_files:
print(f'文件{file}的路径为{os.path.abspath(file)}')
以上代码中,使用glob.glob()
函数查找当前目录下所有扩展名为.txt
的文件,并使用os.path.abspath()
函数将相对路径转换为绝对路径,之后打印出每个文件的路径。
除了使用glob模块,Python的os模块也提供了查找文件路径的函数,如os.walk()
函数。该函数会遍历指定路径下的所有文件和子目录,并返回它们的路径列表。
例如,查找当前目录下所有的文件路径:
for dirpath, dirnames, filenames in os.walk('.'):
for file in filenames:
print(f'文件{file}的路径为{os.path.abspath(os.path.join(dirpath, file))}')
以上代码中,使用os.walk()
函数遍历当前目录下的所有目录和文件,之后使用os.path.join()
将文件名与其所在的目录合并为绝对路径,并打印出来。
以上就是使用Python查找给定文件的路径的方法。无论是使用os模块的各种函数、使用glob模块的glob.glob()
函数,还是使用os模块的os.walk()
函数,都可以完成这个任务。最后需要注意的是,打印出来的路径是绝对路径,需要使用os.path.abspath()
函数进行转换。