合并 3 个文本文件 python
Merge 3 Textfiles with python
我真的是编程新手,到目前为止找不到满意的答案。我正在使用 python 并且我想合并三个文本文件以接收所有可能的单词组合。我有 3 个文件:
第一个文件:
line1
line2
line3
第二个文件(前缀):
pretext1
pretext2
pretext3
第三个文件(后缀):
suftext1
suftext2
suftext3
我已经使用了 .read() 并且我的变量包含每个文本文件的列表。现在我想编写一个函数将这 3 个文件合并为 1 个,它应该如下所示:
输出文件:
pretext1 line1 suftext1 #this is ONE line(str)
pretext2 line1 suftext1
pretext3 line1 suftext1
pretext1 line1 suftext2
pretext1 line1 suftext3
等等,你懂的
我想要 1 个文本文件中的所有可能组合作为输出。我想我必须在循环中使用循环?!
如果我答对了你的问题,就在这里。
首先,您必须使用 os 包将焦点放在正确的文件夹中。
import os
os.chdir("The_path_of_the_folder_containing_the_files")
然后你打开你的三个文件,然后将单词放入列表中:
file_1 = open("file_1.txt")
file_1 = file_1.read()
file_1 = file_1.split("\n")
file_2 = open("file_2.txt")
file_2 = file_2.read()
file_2 = file_2.split("\n")
file_3 = open("file_3.txt")
file_3 = file_3.read()
file_3 = file_3.split("\n")
您使用循环在输出文件中创建所需的文本:
text_output = ""
for i in range(len(file_2)):
for j in range(len(file_1)):
for k in range(len(file_3)):
text_output += file_2[i] + " " + file_1[j] + " " + file_3 [k] + "\n"
然后将该文本输入到输出文件中(如果该文件不存在,将创建它)。
file_output = open("file_output.txt","w")
file_output.write(text_output)
file_output.close()
虽然现有答案可能是正确的,但我认为在这种情况下引入库函数绝对是可行的方法。
import itertools
with open('lines.txt') as line_file, open('pretext.txt') as prefix_file, open('suftext.txt') as suffix_file:
lines = [l.strip() for l in line_file.readlines()]
prefixes = [p.strip() for p in prefix_file.readlines()]
suffixes = [s.strip() for s in suffix_file.readlines()]
combos = [('%s %s %s' % (x[1], x[0], x[2]))
for x in itertools.product(lines, prefixes, suffixes)]
for c in combos:
print c
我真的是编程新手,到目前为止找不到满意的答案。我正在使用 python 并且我想合并三个文本文件以接收所有可能的单词组合。我有 3 个文件:
第一个文件:
line1
line2
line3
第二个文件(前缀):
pretext1
pretext2
pretext3
第三个文件(后缀):
suftext1
suftext2
suftext3
我已经使用了 .read() 并且我的变量包含每个文本文件的列表。现在我想编写一个函数将这 3 个文件合并为 1 个,它应该如下所示:
输出文件:
pretext1 line1 suftext1 #this is ONE line(str)
pretext2 line1 suftext1
pretext3 line1 suftext1
pretext1 line1 suftext2
pretext1 line1 suftext3
等等,你懂的
我想要 1 个文本文件中的所有可能组合作为输出。我想我必须在循环中使用循环?!
如果我答对了你的问题,就在这里。 首先,您必须使用 os 包将焦点放在正确的文件夹中。
import os
os.chdir("The_path_of_the_folder_containing_the_files")
然后你打开你的三个文件,然后将单词放入列表中:
file_1 = open("file_1.txt")
file_1 = file_1.read()
file_1 = file_1.split("\n")
file_2 = open("file_2.txt")
file_2 = file_2.read()
file_2 = file_2.split("\n")
file_3 = open("file_3.txt")
file_3 = file_3.read()
file_3 = file_3.split("\n")
您使用循环在输出文件中创建所需的文本:
text_output = ""
for i in range(len(file_2)):
for j in range(len(file_1)):
for k in range(len(file_3)):
text_output += file_2[i] + " " + file_1[j] + " " + file_3 [k] + "\n"
然后将该文本输入到输出文件中(如果该文件不存在,将创建它)。
file_output = open("file_output.txt","w")
file_output.write(text_output)
file_output.close()
虽然现有答案可能是正确的,但我认为在这种情况下引入库函数绝对是可行的方法。
import itertools
with open('lines.txt') as line_file, open('pretext.txt') as prefix_file, open('suftext.txt') as suffix_file:
lines = [l.strip() for l in line_file.readlines()]
prefixes = [p.strip() for p in prefix_file.readlines()]
suffixes = [s.strip() for s in suffix_file.readlines()]
combos = [('%s %s %s' % (x[1], x[0], x[2]))
for x in itertools.product(lines, prefixes, suffixes)]
for c in combos:
print c