赞
踩
python学习—合并TXT文本文件
python学习—统计嵌套文件夹内的文件数量并建立索引表格
日常工作中,有时候会统计一些文件列表,如对截图文件夹中的图片进行统计列表;
遍历某个盘符或目录下的指定格式文件列表。
本代码目标为:
首先在D盘根目录下建立文件夹“临时”,在该文件夹内存放多个jpg格式图片文件,内容随意。
再该目录下新建文件夹,继续放入图片文件,实现目录嵌套。
第一版本的代码,主要实现导出列表的操作。
directory = r"D:\\临时" # 指定查找目录
file_type = ".jpg" # 指定查找文件类型
file_list = [] # 存储文件路径的列表
for root, dirs, files in os.walk(directory):
for file in files:
知识点: 关于文件扩展名(后缀名)
文件扩展名(Filename Extension)也称为文件的后缀名,是Windows操作系统用来标记文件类型的一种机制,或者符号。扩展名几乎是每个文件必不可少的一部分。如果一个文件没有扩展名,那么操作系统就无法辨别这个文件,不能区分它属于什么类型,从而无法判断到底使用哪款软件进行处理此文件。
文件名与扩展名由英文字符 点 “ . “ 分隔。如 xxx.doc 、xxx.jpg 、xxx.txt。
在Windows系统中,文件的扩展名需要“文件夹选项”中 取消勾选 “隐藏已知文件类型的扩展名”选项,否则看不到文件的后缀名。
python中截取文件扩展名的函数为 :endswith(file_type)
功能是获取文件的扩展名(包含 点 . )
防止字符大小写不一致,先行将文件名统一改为 小写字母。
函数为:str.lower() 转换为小写
str.upper() 转换为 大写。
if file.lower().endswith(file_type): # 判断文件是否为JPG文件
file_path = os.path.join(root, file) # 获取文件的完整路径
file_list.append(file_path) # 将文件路径添加到列表中
使用 with 语句 在进入和退出代码块时自动处理文件的打开和关闭,从而避免了手动管理文件资源的需要。这有助于确保文件在使用后能够被正确关闭,即使是在发生异常的情况下。
with open(os.path.join(directory, "文件列表.txt"), "w") as f:
for file_path in file_list:
f.write(file_path + "\n")
import os directory = r"D:\\临时" # 指定查找目录 file_type = ".jpg" # 指定查找文件类型 # 遍历指定目录(包括子目录)下的 指定 格式文件 file_list = [] # 存储文件路径的列表 for root, dirs, files in os.walk(directory): for file in files: if file.lower().endswith(file_type): # 判断文件是否为JPG文件 file_path = os.path.join(root, file) # 获取文件的完整路径 file_list.append(file_path) # 将文件路径添加到列表中 # 将文件路径写入文件列表.txt with open(os.path.join(directory, "文件列表.txt"), "w") as f: for file_path in file_list: f.write(file_path + "\n")
运行效果:
第一版的代码已经能够实现主要功能。后续主要优化代码运行效率。
# 函数用于优化打开文件的方式,减少资源占用
def write_file_list(file_list):
with open(os.path.join(directory, "文件列表.txt"), "w") as f:
for file_path in file_list:
f.write(os.path.relpath(file_path, directory) + "\n")
import os directory = r"d:\临时" # 指定查找目录 file_type = ".jpg" # 指定查找文件类型 # 函数用于优化打开文件的方式,减少资源占用 def write_file_list(file_list): with open(os.path.join(directory, "文件列表.txt"), "w") as f: for file_path in file_list: f.write(os.path.relpath(file_path, directory) + "\n") # 遍历指定目录(包括子目录)下的指定格式文件 file_list = [] for root, dirs, files in os.walk(directory): for file in files: if file.lower().endswith(file_type): # 判断文件是否为JPG文件 file_path = os.path.join(root, file) # 获取文件的完整路径 file_list.append(file_path) # 将文件路径添加到列表中 # 将文件路径写入文件列表.txt,使用相对路径使文件更易于理解 write_file_list(file_list)
运行效果一样。
使用windows的批处理,也可以实现该效果。
方法:新建txt文件,写入“dir *.jpg /b/s> list.txt”,然后修改后缀名为 “.bat”。
放在准备统计的目录里,右键——运行,即可生成文件列表。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。