如何生成排列列表和写入文件

问题描述 投票:0回答:1

我写句子并想将它们组合在一起,但是按照排列顺序。每个句子都存储在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()
python file-io output permutation
1个回答
0
投票

问题出在这一行:

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)
© www.soinside.com 2019 - 2024. All rights reserved.