python 读取目录下所有行 根据txt 行数 合并成2个txt 要求 2个txt 行数最接近
时间: 2024-01-27 12:04:27 浏览: 72
您好!感谢您使用ChitGPT进行对话。
关于您的问题,可以使用以下Python代码实现读取目录下所有txt文件,并根据行数将它们合并为2个txt,使得这2个txt的行数最接近:
```python
import os
# 获取目录下所有txt文件
file_list = []
for file in os.listdir("your_directory_path"):
if file.endswith(".txt"):
file_list.append(file)
# 将每个txt文件按行读取,并统计行数
lines_list = []
for file in file_list:
with open(file, "r") as f:
lines = f.readlines()
lines_list.append((file, len(lines), lines))
# 根据行数从大到小排序
lines_list.sort(key=lambda x: x[1], reverse=True)
# 将txt文件分配到两个列表中
list1, list2 = [], []
total_lines1, total_lines2 = 0, 0
for i in range(len(lines_list)):
file, lines, contents = lines_list[i]
if total_lines1 <= total_lines2:
list1.append((file, contents))
total_lines1 += lines
else:
list2.append((file, contents))
total_lines2 += lines
# 将列表中的内容写入新的txt文件中
with open("output1.txt", "w") as f:
for _, contents in list1:
for line in contents:
f.write(line)
with open("output2.txt", "w") as f:
for _, contents in list2:
for line in contents:
f.write(line)
```
请注意,您需要将上面代码中的 `"your_directory_path"` 更改为您想要读取的目录的路径。同时,您需要确保该目录中只包含纯文本文件(txt文件),且文件内容可以按行读取。
希望这能解决您的问题。如果您有任何其他问题或疑问,请随时问我!
阅读全文