将多个嵌套文件转换为单个文件(将它们串联)

时间:2019-04-17 11:27:59

标签: python

我有一个包含7个文件的文件夹,每个文件内部都有几个文本文件。我打算通读它们,并将每个嵌套的文本文件写入一个名为ZebraAllRaw.txt的文件中。最后,必须只有一个文件,其中包含这7个文件中每个文件中都存在的所有文本文件。

这是我编写的函数:

def CombineFiles(folder):
     with open('D:/ZebraAllRaw.txt', 'a', encoding="utf-8") as OutFile:
        for root, dirs, files in os.walk(folder, topdown= False):
            for filename in files:
                file_path = os.path.join(root, filename)
                with open(file_path, 'r', encoding="utf-8") as f:
                    content = f.read()
                    new_content = content.replace('\n', '')
                    OutFile.write(new_content + "\n")

但是,似乎所有内容都被写入了新文件9次,好像对它们的读取比预期的要多。

1 个答案:

答案 0 :(得分:0)

请确保您没有附加来自不同运行的文件。

我只在打开时用 write 替换了文件模式 append

def CombineFiles(folder):
     with open('D:/ZebraAllRaw.txt', 'w', encoding="utf-8") as OutFile: # mode "w", not "a"
        for root, dirs, files in os.walk(folder, topdown= False):
            for filename in files:
                file_path = os.path.join(root, filename)
                with open(file_path, 'r', encoding="utf-8") as f:
                    content = f.read()
                    new_content = content.replace('\n', '')
                    OutFile.write(new_content + "\n")