Python 读取指定目录及其子目录下所有文件名
2018-01-06 20:39
555 查看
Python 读取指定目录及其子目录下所有文件名
目标
磁盘中的文件随着积累越来越多,当要寻找某个文件时,使用 windows 的搜索速度太慢且占内存。因此想要寻找一个可以获取指定目录下的所有文件的文件名,作为一种图书馆索引目录式的文件管理方式。在此使用 python 的
os.walk()函数实现遍历指定目录及所有子目录下的所有文件。使用 python 3.6 版本实现。
walk()函数返回目录树生成器(迭代器)。通过自顶向下遍历目录来生成目录树中的文件名。对于根目录顶部(包括顶部本身)树中的每个目录,它产生一个3元组(dirpath,dirnames,filenames)。dirpath是一个字符串,即目录的路径。
dirnames是dirpath中子目录的名称列表。filenames是dirpath中非目录文件名称的列表。但列表中的名称不包含路径,要得到一个完整路径(从顶部开始)到dirpath中的文件或目录,请执行
os.path.join(dirpath,name)。更多详情可查看 python 标准库文档os.walk() 。
实现代码如下
import os def all_path(dirname): filelistlog = dirname + "\\filelistlog.txt" # 保存文件路径 postfix = set(['pdf','doc','docx','epub','txt','xlsx','djvu','chm','ppt','pptx']) # 设置要保存的文件格式 for maindir, subdir, file_name_list in os.walk(dirname): for filename in file_name_list: apath = os.path.join(maindir, filename) if True: # 保存全部文件名。若要保留指定文件格式的文件名则注释该句 #if apath.split('.')[-1] in postfix: # 匹配后缀,只保存所选的文件格式。若要保存全部文件,则注释该句 try: with open(filelistlog, 'a+') as fo: fo.writelines(apath) fo.write('\n') except: pass # 所以异常全部忽略即可 if __name__ == '__main__': dirpath = "D:" # 指定根目录 all_path(dirpath)
程序运行结束将所有文件名保存为指定目录下的 filelistlog.txt 文件。
相关文章推荐
- linux c 读取目录及其子目录下所有.jpg文件的文件名(无后缀)
- python 文件和目录 当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- 编写一个Python程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
- Python 读取指定目录下的所有子目录及所有文件
- Python 读取指定目录下的所有子目录及所有文件
- Python_删除/创建指定目录及其下所有子目录的文件,该文件记录当前文件夹的内容
- Python获取指定目录下所有子目录、所有文件名
- Python_删除/创建指定目录及其下所有子目录的文件,该文件记录当前文件夹的内容
- php读取目录及子目录下所有文件名的方法
- python获取指定目录下所有文件名列表的方法
- 获取指定目录下的所有文件名和路径(包括子目录)
- php读取目录及子目录下所有文件名的方法
- python获取当前目录下及子目录下的所有文件名
- 获取指定目录及其子目录下所有文件的绝对路径
- C#递归读取目录里所有文件(包括子目录)及其文件操作
- java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- 获取指定目录及其子目录的所有文件(JAVA)
- php读取指定目录文件夹下所有文件名
- Java读取指定目录下的所有文件名
- Python读取目录所有文件名并保存