Python中跳过不含指定文件的文件夹并计算行均值
遍历文件夹时跳过无指定文件的处理方案
我有一批文件夹,部分包含len_J.py文件,原代码用于遍历这些文件夹并计算每行的均值,但遇到不含该文件的文件夹时会运行失败。需要修改代码,仅计算存在len_J.py的文件夹的均值,跳过不含该文件的文件夹。
原代码
NFILES = 3 values = [[] for _ in range(NFILES)] for i in range(NFILES): with open(rf"C:\Users\USER\OneDrive - Technion\Research_Technion\Python_PNM\Surfactant A-D\Trials\{i+1}\len_J.py") as data: values[i] += map(int,filter(lambda x: x.strip().isdecimal(), data)) for t in zip(*values): print(sum(t)//len(t))
修改后的代码
import os NFILES = 3 valid_values = [] for i in range(NFILES): file_path = rf"C:\Users\USER\OneDrive - Technion\Research_Technion\Python_PNM\Surfactant A-D\Trials\{i+1}\len_J.py" # 检查文件是否存在 if os.path.exists(file_path): with open(file_path) as data: # 提取文件中的有效数字并转为整数列表 num_list = list(map(int, filter(lambda x: x.strip().isdecimal(), data))) # 仅添加非空的数字列表 if num_list: valid_values.append(num_list) # 处理有效数据的均值计算 if valid_values: # 验证所有文件的行数是否一致 row_counts = {len(lst) for lst in valid_values} if len(row_counts) == 1: for row in zip(*valid_values): print(sum(row) // len(row)) else: print("警告:不同文件的数据行数不一致,无法计算每行均值") else: print("未找到任何包含有效数据的len_J.py文件")
关键修改说明
- 引入
os.path.exists()检查文件是否存在,直接跳过不存在文件的文件夹 - 改用
valid_values动态存储有效数据列表,避免原固定长度列表中空数据的干扰 - 添加空数据过滤,确保只有包含数字的列表才会被纳入计算
- 增加数据一致性校验,防止因不同文件行数不同导致的计算错误
- 补充无有效文件的提示,让程序行为更清晰
内容的提问来源于stack exchange,提问作者KeplerNick123
相关产品推荐
相关产品推荐

