pyton 获取目录下的所有txt 随机合并成 a.txt 和b.txt 要求2个txt 行数一样
时间: 2024-05-12 07:18:33 浏览: 60
您好,根据您的要求,可以使用以下 Python 代码来实现:
```python
import os
import random
# 获取目录下所有 txt 文件
txt_files = [f for f in os.listdir('.') if f.endswith('.txt')]
# 读取每个 txt 文件,并将所有行保存在列表中
lines = []
for file in txt_files:
with open(file, 'r') as f:
lines.append(f.readlines())
# 获取每个 txt 文件的行数
num_lines = len(lines[0])
# 随机合并成 a.txt 和 b.txt
random.shuffle(lines)
a_lines = lines[:len(lines)//2]
b_lines = lines[len(lines)//2:]
a_file = open('a.txt', 'w')
b_file = open('b.txt', 'w')
# 将 a.txt 和 b.txt 中每个文件的行数限制为 num_lines
for i in range(num_lines):
a = a_lines[random.randrange(len(a_lines))][i]
b = b_lines[random.randrange(len(b_lines))][i]
a_file.write(a)
b_file.write(b)
a_file.close()
b_file.close()
```
以上代码首先使用 Python 内置的 `os` 模块获取当前目录下所有 `.txt` 结尾的文件,然后循环读取每个文件的内容并将每行内容保存在一个列表中。接着,获取每个文档的行数,并使用 `random.shuffle` 函数将所有行随机打乱。最后,将列表的前一半作为 a.txt 文件的内容,后一半作为 b.txt 文件的内容。同时使用 `random.randrange` 函数随机从每个文件中选择相应的行来保证两个文件的行数数量一致。
阅读全文