Python 遍历文件夹的txt文件并读取行数大小进行比较,选出最大行数所在的txt文件并打开相同目录下与其同名的.jpg格式的文件,若存在txt文件的行数相同且均为最大行数时,比较该txt文件中每一行的第六个数据并取其平均值,选出平均数最大的txt文件并输出相同目录下与其同名的.jpg格式的文件
时间: 2024-02-09 16:09:15 浏览: 29
好的,下面是 Python 代码实现:
```python
import os
txt_files = []
for root, dirs, files in os.walk('.'):
for file in files:
if file.endswith('.txt'):
txt_files.append(os.path.join(root, file))
line_counts = {}
for txt_file in txt_files:
with open(txt_file, 'r') as f:
lines = f.readlines()
line_counts[txt_file] = len(lines)
max_line_count = max(line_counts.values())
max_line_count_txt_files = [txt_file for txt_file, line_count in line_counts.items() if line_count == max_line_count]
if len(max_line_count_txt_files) > 1:
avg_values = {}
for txt_file in max_line_count_txt_files:
with open(txt_file, 'r') as f:
lines = f.readlines()
avg_values[txt_file] = sum(float(line.split()[5]) for line in lines) / len(lines)
max_avg_value = max(avg_values.values())
max_avg_value_txt_file = [txt_file for txt_file, avg_value in avg_values.items() if avg_value == max_avg_value][0]
else:
max_avg_value_txt_file = max_line_count_txt_files[0]
jpg_file = os.path.splitext(max_avg_value_txt_file)[0] + '.jpg'
with open(jpg_file, 'rb') as f:
# 处理 jpg 文件
pass
```
这段代码与我之前回答的代码基本一致,只是增加了对平均数相同情况的处理。需要注意的是,如果多个 txt 文件的平均数都相同,这段代码只会输出其中一个文件对应的 jpg 文件,并不会输出所有平均数相同的文件对应的 jpg 文件。如果需要输出所有文件对应的 jpg 文件,可以对这段代码进行修改。
阅读全文
相关推荐















