что l oop не имеет смысла:
for line in flower1:
lines = flower1.read()
newFile.write(lines)
это повторяет строки файла, а внутри l oop вы читаете весь файл!
Тот факт, что первая строка отсутствует, объясняется тем, что python уже использовал строку в первой итерации for line in flower1
. Затем он читает остальную часть файла и записывает его, и l oop заканчивается, потому что достигнут конец файла ... Обратите внимание, что line
никогда не используется в коде. Обычно это плохой знак.
просто удалите l oop:
lines = flower1.read()
newFile.write(lines)
Если вы хотите обрабатывать построчно по какой-то причине (может пригодиться, если вы хотите отфильтровать в некоторых строках) оставьте l oop, но не читайте в l oop:
for line in flower1:
newFile.write(line)
Также есть одна строка: newFile.writelines(flower1)
если вы не фильтрация не нужна.
Хотя есть и лучшие способы объединить общие файлы (двоичные или текстовые). Мне нравится версия, в которой используется shutil.copyfileobj
, потому что, даже если файлы огромны, объем памяти будет умеренным, а с точки зрения производительности, поскольку размер блока больше 1 строки, скорость может быть немного лучше.