Python获取文件夹下所有文件的三种常用方法
本文介绍Python中获取文件夹下所有文件的三种常用方法:os.listdir、os.walk和glob.glob。os.listdir仅返回当前目录名称;os.walk可递归遍历子文件夹并返回路径、子目录及文件名;glob.glob支持通配符过滤并返回带路径的文件名。文章提供示例代码及注意事项,帮助开发者根据需求选择合适方案。
前言
在Python开发中,获取指定文件夹下的所有文件是一项常见需求,实现这一目标有多种不同的方法可供选择。
1. os.listdir
os.listdir函数接收一个文件夹路径作为参数,能够返回该文件夹下所有的子文件夹和文件名称列表。
示例:
import os
path = 'D:\Workspace'
for file_name in os.listdir(path):
print(file_name)
需要注意的是,该方法无法返回子文件夹内的文件,且仅返回名称而不包含完整路径信息。
2. os.walk
os.walk函数同样接收文件夹路径作为参数,但其返回值包含三个部分:当前绝对路径、子文件夹列表以及文件名列表。此方法的优势在于可以遍历文件夹下的所有文件、子文件夹及其内部的所有文件。
例如:
D:/workspace/folder/text1.txt D:/workspace/folder/text2.txt
当输入的path参数为D:/workspace时,第一次遍历会获取/workspace目录下的所有文件和文件夹;第二次遍历则会获取/workspace/folder目录下的所有文件和文件夹。因此,需要对返回结果进行循环处理,以获取所有文件。
示例:
import os
path = 'D:\Workspace'
for root, dirs, files in os.walk(path):
print(root)
print(dirs)
print(files)
返回:
D:\Workspace ['folder'] [] D:\Workspace\folder [] ['text1.txt', 'text2.txt']
3. glob.glob
glob函数接收路径以及文件过滤条件作为参数,若不设置过滤条件需填写为*,此函数会返回包括路径的文件夹和文件名列表。
示例:
import glob
path = 'D:\Workspace\folder\*'
for file_abs in glob.glob(path):
print(file_abs)
返回:
D:\Workspace\folder\text1.txt D:\Workspace\folder\text2.txt
需要注意的是,该方法不能返回子文件夹下的文件,但会返回文件名与绝对路径的组合。
附:Python获取指定目录下的文件夹名列表和文件名列表
import os
# enter of program
if __name__ == '__main__':
# input
input_path = 'D:/data/pycodes/books/'
# initialize
dir_list = []
file_list = []
# process
for root, dirs, files in os.walk(input_path):
dir_list = dirs
file_list = files
break
# output
print(dir_list, len(dir_list))
print(file_list, len(file_list))总结
到此这篇关于利用Python获取文件夹下所有文件的文章就介绍到这了,更多相关Python获取文件夹所有文件内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













