我想组合一堆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() +"nn##################nn")
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("nn##################nn")