下面是一种实现的示例代码,可以按照给定的比例将文本文件1和文件2的行交叉插入:
def interleave_files(file1, file2, ratio):
with open(file1, 'r') as f1, open(file2, 'r') as f2:
lines1 = f1.readlines()
lines2 = f2.readlines()
# 计算每个文件中应该插入的行数
num_lines1 = int(len(lines1) * ratio)
num_lines2 = int(len(lines2) * ratio)
# 交叉插入行
interleaved_lines = []
for i in range(max(num_lines1, num_lines2)):
if i < num_lines1:
interleaved_lines.append(lines1[i])
if i < num_lines2:
interleaved_lines.append(lines2[i])
# 将结果写入新文件
with open('interleaved.txt', 'w') as f:
f.writelines(interleaved_lines)
# 示例用法
interleave_files('file1.txt', 'file2.txt', 0.5)
在上述代码中,interleave_files
函数接受三个参数:file1
和file2
是要交叉插入的两个文本文件的文件名,ratio
是插入行的比例。代码首先打开两个文件并读取所有行,然后根据给定的比例计算每个文件中应该插入的行数。接下来,使用一个循环将行交叉插入到interleaved_lines
列表中。最后,将interleaved_lines
中的行写入到新文件interleaved.txt
中。
请注意,上述代码仅适用于文本文件,如果文件包含二进制数据或特殊字符,可能需要进行适当的修改。