You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:54:56