Конкатенация файлов.txt. Записать содержимое в один файл.txt
У меня есть несколько TXT-файлов в папке. Мне нужно собрать их содержимое все в один файл.txt. Я работаю с Python и попробовал:
import os
rootdir = "\\path_to_folder\\"
for files in os.walk(rootdir):
with open ("out.txt", 'w') as outfile:
for fname in files:
with open(fname) as infile:
for line in infile:
outfile.write(line)
но не сработало. Out.txt генерируется, но код никогда не заканчивается. Любой совет? Заранее спасибо.
2 ответа
os.walk
возвращает кортежи, а не имена файлов:
with open ("out.txt", 'w') as outfile:
for root, dirs, files in os.walk(rootdir):
for fname in files:
with open(os.path.join(root, fname)) as infile:
for line in infile:
outfile.write(line)
Также вы должны открывать outfile в начале, а не в каждом цикле.
Это решило мою проблему. Сгенерированный файл 'out.txt' составляет всего 151 КБ.
file_list = os.listdir("\\path_to_folder\\")
with open('out.txt', 'a+') as outfile:
for fname in file_list:
with open(fname) as infile:
outfile.write(infile.read())
Спасибо всем.