我写句子并想将它们组合在一起,但是按照排列顺序。每个句子都存储在outputa1.txt outputa2.txt outputa3.txt
中,组合的句子将存储在outputone.txt中。
我发现了一个排列代码
a=itertools.permutations(["output()","output1()","output2()"],2)
b=str(random.choice(list(a)))
outfile.write(str(b))
我相信这段代码可以帮助我完成代码。
但问题是,因为只有output()包含outfile=open("outputone.txt","w")
代码,在def output1()中,它无法识别outputone。但是,如果我将outfile=open("outputone.txt","w")
添加到所有def中,只有一个句子出来,而不是合并。
如果我删除def,我可以制作代码,但我失去了排列顺序。
我知道这段代码,而且我的英语技能非常草率,因为我没有任何书籍就单独研究过它们。
请任何人提高我的python技能..我会非常感激!!
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()
问题出在这一行:
outfile=open("outputone.txt","w")
你需要在附加模式下打开这个文件:outfile=open("outputone.txt","a")
在函数'output'你错过了outfile.write(line)
为清楚起见,我会编写一个辅助函数来将文件附加到另一个文件。当您使用带有语句的文件时,可以使用更多信息:https://docs.python.org/3/reference/compound_stmts.html#the-with-statement
def append_to(source, output):
with open(source, 'r') as source_file:
rows = source_file.readlines()
s = '\n'.join(rows)
with open(output, 'a') as output_file:
output_file.write(s)