如何将3个txt文件合并在一起

时间:2019-02-13 10:33:15

标签: python python-3.x file

我制作了3个文本文件,其中包含1或2个句子。

我知道如何在txt文件中读取行并将其完全合并。

我不知道如何组合所有句子。

ex)如果句子是A,B,C

结果可能是A B C或A C B或C B A或B C A ...

我有10个句子,想随机组合其中6个。

def output() :          
     infile=open("file.txt","r")
     outfile=open("outputone.txt","w")

     line= open('outputa1.txt').readlines()
     line=''.join(line)
     outfile.write("\n")

def output1() :

     line= open('outputa2.txt').readlines()
     line=''.join(line)
     outfile.write(line)
     outfile.write("\n")

def output2() :

     line= open('outputa3.txt').readlines()
     line=''.join(line)
     outfile.write(line)
     outfile.write("\n")

     infile.close()
     outfile.close()

output()
output1()
output2()

这是我的代码,如果您有任何想法请帮助我!

1 个答案:

答案 0 :(得分:0)

我不知道您为什么要为选择6条随机线而排列这些线。我认为排列是指改组。 10行的排列会给您3628800行的组合。因此,我提供了一种从10行中随机选择6行并将其写入文件的解决方案。

outputa1.txt:

  1. 这是文件1
  2. 这是foo
  3. 这是文件1的结尾

outputa2.txt

  1. 这是文件2
  2. 这是酒吧
  3. 这是文件2的结尾

outputa3.tx

  1. 这是文件3
  2. 这是巴兹
  3. 这是文件3的结尾
  4. 就这些

现在这三个文件合起来将有10行。

import random
combined_lines = []
f = open('outputa1.txt','r')
for line in f:
    combined_lines.append(line+'\n')
f.close()
f = open('outputa2.txt','r')
for line in f:
    combined_lines.append(line+'\n')
f.close()
f = open('outputa3.txt','r')
for line in f:
    combined_lines.append(line+'\n')
f.close()
#To choose randomly 6 lines from the file
random.shuffle(combined_lines)
f = open('outputa.txt','x')
f.writelines(combined_lines[:6])
f.close()