Эти четыре строки интересны ...
archivo2.write(archivo.read())
archivo2.seek(0, 0)
print archivo2.read()
archivo2.close()
В строке 1 вы выкачиваете некоторые данные в файл; по пути операционная система услужливо выполняет некоторую буферизацию, чтобы сделать процесс более эффективным. В конце этого некоторые данные были записаны на диск, но некоторые все еще остаются в буфере, ожидая его заполнения.
В строке 2 вы перемещаете файл в начало файла, а в строке 3 вы читаете до конца файла . На самом деле вы никогда не делали ничего, что приводило бы к записи буфера на диск.
В строке 4 вы закрываете файл, но буфер был признан недействительным.
Вы можете сказать python, что хотите, чтобы все содержимое буфера файла записывалось на диск, с помощью file.flush()
. Что происходит, когда вы добавляете archivo2.flush()
между строками 1 и 2?