Python统计目录文件数如何先输出总数再列文件避免重复打印
调整方案
核心修改逻辑
- 原有代码是遍历文件过程中累加计数,遍历完成后才输出总数量,和你要先输出总数的需求顺序相反
os.listdir()会返回当前目录下所有内容的列表,直接调用len()方法就能拿到总数量,不需要遍历累加,逻辑更简洁还能避免重复计数的问题- 遍历文件列表时可以用
enumerate()方法直接生成从1开始的序号,不需要手动维护计数变量
修改后可直接运行的代码
import os # 如果之前已经导入过os可以省略这行 while True: if correct_path.upper() == "Y": # 获取目录下所有文件/文件夹列表 files = os.listdir(current_path) # 先计算并打印总文件数量 files_count = len(files) print(f"You have {files_count} files in your directory.") # 按序号依次列出每个文件 for index, file in enumerate(files, start=1): # 如果需要每个文件条目前加换行,可以改成 print(f"\n{index}. {file}") print(f"{index}. {file}") return
拓展优化(可选)
如果你的统计要求是仅统计纯文件、排除子文件夹,可以把获取列表的代码替换成下面的过滤逻辑:
files = [f for f in os.listdir(current_path) if os.path.isfile(os.path.join(current_path, f))]
内容的提问来源于stack exchange,提问作者Lander Iturregi
相关产品推荐
相关产品推荐

