python 遍历文件夹的txt文件并读取行数大小进行比较,选出最大行数所在的txt文件并打开与其同名的.jpg格式的文件
时间: 2023-12-14 07:40:05 浏览: 83
可以使用 `os` 和 `glob` 模块来实现遍历文件夹中的 txt 文件,使用 `open()` 函数读取文件行数大小,比较后选择最大行数所在的 txt 文件,并打开同名的 jpg 文件。
以下是代码示例:
```python
import os
import glob
max_lines = 0
max_file = ""
# 遍历文件夹中的所有 txt 文件
for file in glob.glob("folder/*.txt"):
with open(file, "r") as f:
lines = len(f.readlines())
if lines > max_lines:
max_lines = lines
max_file = file
# 打开与最大行数所在的 txt 文件同名的 jpg 文件
if max_file:
jpg_file = os.path.splitext(max_file)[0] + ".jpg"
os.startfile(jpg_file)
```
其中,`glob.glob("folder/*.txt")` 表示获取所有以 `.txt` 结尾的文件路径,`os.path.splitext()` 函数可以将文件名和扩展名分开。最后使用 `os.startfile()` 函数打开 jpg 文件。
相关问题
Python 遍历指定文件夹的txt文件并读取行数大小进行比较,选出最大行数所在的txt文件并打开相同目录下与其同名的.jpg格式的文件,若存在txt文件的行数相同且均为最大行数时,比较该txt文件中每一行的第六个数据并取其平均值,选出平均数最大的txt文件并输出相同目录下与其同名的.jpg格式的文件
好的,这是一个比较常见的需求,下面是 Python 代码实现:
```python
import os
# 指定文件夹路径
folder_path = 'path/to/folder'
txt_files = []
for file in os.listdir(folder_path):
if file.endswith('.txt'):
txt_files.append(os.path.join(folder_path, 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
```
这段代码与之前的代码基本一致,只是将遍历文件夹的方式改为了指定文件夹路径。需要注意的是,如果指定的文件夹路径不存在或者不是文件夹,这段代码会抛出异常。如果需要对这种异常情况进行处理,可以在代码中添加相应的逻辑。
阅读全文