объединенное содержимое всех файлов txt в один - Python - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь объединить все содержимое файла result.txt внутри папки результатов и создать из него файл "Result_STD.txt". Но перед записью в файл я хочу один раз добавить str (GenerateFile), но в настоящее время для каждого добавления файла эта строка добавляется. Может ли кто-нибудь предложить мне, как добавить эту строку только один раз в файл?

def createOutput(self,STD):
    directory = "/result"
    read_files = glob.glob(directory + "/" + "*_result.txt")
    with open(directory + "/" + "Result_" + STD + ".txt", "wb") as outfile:
        for f in read_files:
            with open(f, "rb") as infile:
                data = infile.read()
                new_data = '{"GenerateFile":'+ data +  '}'
                print(new_data)
=================================================================
                
Current Output:

GenerateFile:{
    "Message": "CREATED", 
    "Result": "DONE"
}
GenerateFile:{
    "Message": "CREATED", 
    "Result": "DONE"
}

==============================================================
                
expected output:

GenerateFile:{
    "Message": "CREATED", 
    "Result": "DONE"
},
{
    "Message": "CREATED", 
    "Result": "DONE"
}

1 Ответ

0 голосов
/ 13 июля 2020

Это делает то, что вам нужно?

Если это так, все, что я сделал, это переместил new_data строку начального назначения GenerateFile: из for f in read_files: l oop и добавил к нему внутри l oop, затем распечатайте вывод в конце l oop.

def createOutput(self,STD):
    directory = "/result"
    read_files = glob.glob(directory + "/" + "*_result.txt")
    with open(directory + "/" + "Result_" + STD + ".txt", "wb") as outfile:
        new_data = "GenerateFile:"
        for f in read_files:
            with open(f, "rb") as infile:
                data = infile.read()
                new_data = new_data + " {" + data + "}, "
        print(new_data)

Вам может потребоваться удалить последний , перед print(new_data), если это проблема .

...