2017-02-28 101 views
1

我想结合一堆txt文件,但我也想在每个文件的末尾添加一些内容,以便知道一个文件的结尾和另一个文件的开始位置(在这种情况下,我使用了“##### ##########“)如何使用glob.glob组合txt文件并添加一个字符串来分割txt文件?

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

谢谢!

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") 
+0

尝试正斜杠,而不是在你的路径反斜杠。 –

+0

@Rawing谢谢你!新的这个,让它仍然混合起来。 – wra

回答

1

2问题(以及1个警告):

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

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") 
+1

完美的工作! (只使用python两个月,所以仍然是一个新手)。非常感谢您的帮助! – wra