Как умножить строки из двух разных текстовых файлов в один текстовый файл в Python?
Я хотел бы, чтобы последовательность результатов была следующей
| result |
| zzzzzzbbbbbb |
| zzzzzzffffff |
| zzzzzzkkkkkk |
| aaaaaabbbbbb |
| aaaaaaffffff |
| aaaaaakkkkkk |
| nnnnnnbbbbbb |
| nnnnnnffffff |
| nnnnnnkkkkkk |
Я устал пытаться создать этот код или найти что-то подобное, поэтому большое спасибо всем, кто помогает мне с решением.
def write_files(files):
opened_files = []
for f in files:
opened_files.append(open(f, "r"))
output_file = open("result.txt", "w")
num_lines = sum(1 for line in opened_files[0])
opened_files[0].seek(0,0)
for i in range(num_lines):
line = [of.readline().rstrip() for of in opened_files]
line = " ".join(line)
line += "\n"
output_file.write(line)
for of in opened_files:
of.close()
output_file.close()
write_files(["1.txt", "2.txt"])






Самый простой способ — использовать itertools.product:
import itertools
def write(files):
data = [ open(f).read().splitlines() for f in files]
return [''.join(t) for t in itertools.product(*data)]
print('\n'.join(write(['f1.txt','f2.txt'])))
Выход:
zzzzzzbbbbbb
zzzzzzffffff
zzzzzzkkkkkk
aaaaaabbbbbb
aaaaaaffffff
aaaaaakkkkkk
nnnnnnbbbbbb
nnnnnnffffff
nnnnnnkkkkkk
Однако обратите внимание, что список очень быстро увеличивается.
Спасибо, Тим Робертс. Проблема решена.
@Ms, если этот ответ решил ваш вопрос, пожалуйста, примите его, используя v-образную кнопку слева от него. Спасибо.
Это называется «объединить» или «объединить», а не «умножить».