Как я могу создать список перестановок и записать файл - PullRequest
0 голосов
/ 13 февраля 2019

Я написал предложения и хочу объединить их вместе, но в порядке перестановок.Каждое предложение хранится в 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))

Я считаю, что этот код может помочь мне завершить код.

Но проблема в том, что только выходные данные ()включает в себя outfile=open("outputone.txt","w") код, в def output1 () он не может распознать outputone.Но если я добавлю outfile=open("outputone.txt","w") ко всем определениям, получится только одно предложение, а не объединенное.

Если я удаляю 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()

1 Ответ

0 голосов
/ 13 февраля 2019

проблема в этой строке:

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