Не известно ни о каких командах уровня оболочки для добавления одного файла в другой.Но добавить на «уровне Python» достаточно просто, так что я предполагаю, что разработчики Python не считали необходимым добавлять его в библиотеку.
Решение зависит от размера и структуры добавляемых временных файлов.Если они все настолько малы, что вы не возражаете прочесть каждый из них в память, тогда ответ от Рэйфа Кеттлера (скопированный из его ответа и повторенный ниже) выполняет работу с наименьшим количеством кода.
# tempfiles is an ordered list of temp files (open for reading)
f = open("bigfile.txt", "w")
for tempfile in tempfiles:
f.write(tempfile.read())
Если чтение файлов полностью в память невозможно или не является подходящим решением, вам нужно будет циклически просматривать каждый файл и читать их по частям.Если ваш временный файл содержит строки, оканчивающиеся на новую строку, которые могут быть прочитаны по отдельности в память, вы можете сделать что-то вроде этого
# tempfiles is an ordered list of temp files (open for reading)
f = open("bigfile.txt", "w")
for tempfile in tempfiles:
for line in tempfile
f.write(line)
В качестве альтернативы - что-то, что всегда будет работать - вы можете выбрать размер буфера и просто прочитатьфайл по частям, например
# tempfiles is an ordered list of temp files (open for reading)
f = open("bigfile.txt", "w")
for tempfile in tempfiles:
while True:
data = tempfile.read(65536)
if data:
f.write(data)
else:
break
Урок ввода / вывода учебник содержит много полезной информации.