我有一个包含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次,好像对它们的读取比预期的要多。
答案 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")