如何使用glob.glob合并文本文件并添加字符串打散文本?

How to use glob.glob to combine txt files and add a string to break up the txt?

我想合并一堆 txt 文件,但我还想在每个文件的末尾添加一些内容,这样我就知道一个文件在哪里结束,另一个文件在哪里开始(在这种情况下,我使用了“## #############")

如果我使用单个文件并通读它们,此代码有效,但我只是希望能够使用 glob.glob 通读文件目录。当我这样做时,我得到一个空白的输出文件。有人可以解释为什么会这样吗?

谢谢!

import glob
with open("concatenated.txt",'w') as outfile:
    for files in glob.glob('\home\wra\Desktop\combine\*.txt'):
        for fname in files:
            with open(fname) as infile:
                outfile.write(infile.read() +"\n\n##################\n\n")

2 个问题(和 1 个警告):

  • Unix 路径应该使用 '/' 作为分隔符,而不是 \。 Unix 路径格式可能适用于 Windows,但反之则不行。
  • 您可以直接迭代 glob.glob。您可以使用 filenames = glob.glob(...)for filename in glob.glob(...)
  • 如果 infile 很大,
  • infile.read() 可能很危险。您可以逐行写入文件。

import glob
with open("concatenated.txt",'w') as outfile:
    for filename in glob.glob('/home/wra/Desktop/combine/*.txt'):
        with open(filename) as infile:
            for line in infile:
                outfile.write(line)
        outfile.write("\n\n##################\n\n")