Python中统计符合特定条件的文件总数求助
统计符合条件的文件总数并优化代码
直接给出修改后的完整代码,新增符合条件文件的计数功能,同时优化了文件写入逻辑:
import os NFILES = 10 # 扫描编号0到9的文件 count_valid = 0 # 统计符合条件的文件总数 values = [[] for _ in range(NFILES)] Folder_name='220 nodes_seed896_var5_100stepsize_0.45initial' for i in range(NFILES): filepath = rf"C:\Users\User\OneDrive - Technion\Research_Technion\Python_PNM\Surfactant A-D\{Folder_name}\{i}\len_J.txt" if os.path.isfile(filepath): with open(filepath) as data: lines = data.readlines() numbers = [int(line.strip()) for line in lines if line.strip().isdigit()] if min(numbers) <= 0.5 * max(numbers): values[i].extend(numbers) print(f"File numbers which meet the criterion = {i}") count_valid += 1 # 符合条件时计数器累加 # 输出统计总数 print(f"\nTotal number of files which meet the criterion = {count_valid}") valid_values = [v for v in values if v] # 移除空列表 # 写入平均值文件(优化:将文件打开移到循环外,减少IO操作) with open(rf"C:\Users\User\OneDrive - Technion\Research_Technion\Python_PNM\Surfactant A-D\{Folder_name}\Averaged.txt", 'a') as f: for t in zip(*valid_values): f.write('\n') f.write(str(sum(t) // len(t)))
关键改动说明:
- 新增
count_valid变量作为计数器,初始值设为0 - 每当文件满足判定条件时,执行
count_valid += 1完成计数累加 - 循环结束后单独打印统计结果
- 调整文件写入逻辑:把文件打开操作移到循环外部,避免重复打开/关闭文件,提升运行效率
修改后的输出:
File numbers which meet the criterion = 1 File numbers which meet the criterion = 2 File numbers which meet the criterion = 7 File numbers which meet the criterion = 8 Total number of files which meet the criterion = 4
内容的提问来源于stack exchange,提问作者KeplerNick123
相关产品推荐
相关产品推荐

