当我们需要获取计算机中的文件路径、文件名、文件大小、修改日期等信息时,就需要使用Python中的os模块提供的os.listdir和os.walk函数。这两个函数能够帮助我们获得文件路径的方法,下面我们就来详细讲解使用这两个函数获得文件路径的方法。
os.listdir函数
os.listdir函数可以获得指定文件夹下的所有文件名,即在给定目录中列出所有文件和子文件夹的名称。
语法格式
os.listdir(path)
其中,path表示需要获取文件名的目录路径。该函数返回一个列表,列表中包括目录下的所有文件名和文件夹名(注意返回的是文件名或文件夹名,而不是完整的路径)。
示例代码
import os
# 指定目录路径
dir_path = 'D:/Python/test'
# 获取目录下的所有文件名
file_list = os.listdir(dir_path)
# 输出所有文件名
for filename in file_list:
print(filename)
os.walk函数
os.walk函数可以获取指定文件夹下的所有文件路径和文件名,包括子文件夹中的文件路径和文件名,返回的是一个三元组,分别是当前文件夹路径、当前文件夹中的子文件夹列表、当前文件夹中的文件列表。
语法格式
os.walk(top, topdown=True, onerror=None, followlinks=False)
其中,参数说明如下:
- top:需要遍历的目录路径,该参数类型为字符串;
- topdown:指定遍历的顺序,True表示先列举当前目录,再遍历子目录;False表示先遍历子目录,在列举当前目录;
- onerror:发生错误时的处理方法,默认为None;
- followlinks:若该目录下有软链接,则设为True则让软链接也遍历,为False时则不遍历。
示例代码
import os
# 指定目录路径
dir_path = 'D:/Python/test'
# 遍历目录下的所有文件名和路径
for current_dir, sub_dirs, file_list in os.walk(dir_path):
# 打印当前目录路径
print("当前目录路径:", current_dir)
# 遍历当前目录子目录
for sub_dir in sub_dirs:
print("子目录:", os.path.join(current_dir, sub_dir))
# 遍历子目录下的文件
for file_name in os.listdir(os.path.join(current_dir, sub_dir)):
print("子目录下的文件:", os.path.join(current_dir, sub_dir, file_name))
# 遍历当前目录下的文件
for file_name in file_list:
print("当前目录下的文件:", os.path.join(current_dir, file_name))
上面的示例代码中,我们指定了目录路径为"D:/Python/test",然后通过os.walk函数遍历该目录下所有文件,并打印文件路径。我们可以看到,os.walk函数通过遍历每个子目录,再通过os.listdir函数获取该目录下的所有文件路径与文件名,以此完成整个目录树的遍历。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python使用os.listdir和os.walk获得文件的路径的方法 - Python技术站