python 遍历文件夹的txt文件并读取行数大小进行比较
时间: 2023-07-26 16:07:53 浏览: 87
你可以使用 os 模块遍历文件夹,使用 Python 的文件操作读取每个 txt 文件的行数,然后进行比较。
以下是一个示例代码:
```python
import os
folder_path = "path/to/folder" # 替换为你的文件夹路径
max_lines = 0 # 最大行数
# 遍历文件夹
for filename in os.listdir(folder_path):
if filename.endswith(".txt"): # 只处理 txt 文件
filepath = os.path.join(folder_path, filename)
with open(filepath, 'r') as f:
num_lines = len(f.readlines()) # 获取行数
if num_lines > max_lines: # 更新最大行数
max_lines = num_lines
print("最大行数为:", max_lines)
```
这段代码会遍历指定文件夹下的所有 txt 文件,并读取每个文件的行数,最后输出最大行数。
相关问题
python 遍历文件夹的txt文件并读取行数大小进行比较,选出最大行数所在的txt文件并打开与其同名的.jpg格式的文件
可以使用 `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
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 文件,可以对这段代码进行修改。
阅读全文