用python合并3个文本文件

2024-09-30 20:21:38 发布

您现在位置: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

等等,你明白了吗

我想在一个文本文件中的所有可能的组合作为输出。我想我必须在一个循环中使用一个循环?!你知道吗


Tags: 文件答案编程单词文本文件line1陌生line2
2条回答

虽然现有的答案可能是正确的,但我认为在这种情况下,引入库函数无疑是一种可行的方法。你知道吗

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

给你,如果我没弄错的话。 首先,您必须将焦点放在操作系统包的正确文件夹中。你知道吗

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()

相关问题 更多 >