我制作了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()
这是我的代码,如果您有任何想法请帮助我!
答案 0 :(得分:0)
我不知道您为什么要为选择6条随机线而排列这些线。我认为排列是指改组。 10行的排列会给您3628800行的组合。因此,我提供了一种从10行中随机选择6行并将其写入文件的解决方案。
outputa1.txt:
outputa2.txt
outputa3.tx
现在这三个文件合起来将有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()