Файл создан, но так как ваш вывод мал, вероятно, что он все застрял в буфере записи, пока файл не будет закрыт. Если вам нужно, чтобы файл был заполнен более быстро, либо откройте его в режиме буферизации строки, передав buffering=1
:
open('redirect.txt', 'w', buffering=1)
или flush
после каждого write
, либо , явно вызывая flush
:
redf.write(finalurl+"\n")
redf.flush()
или, так как вы все равно добавляете новые строки, так что вы также можете позволить ему работать для вас, используя print
с flush=True
:
print(finalurl, file=redf, flush=True)
Примечание: Вы действительно хотите использовать with
операторов с файлами, открытыми для записи, в частности, но вы использовали его только для читаемого файла (где он меньше критический, поскольку в худшем случае это просто задержка дескриптора закрытия, а не потерянных записей). В противном случае исключения могут привести к произвольной задержке в файле, который сбрасывается / закрывается. Просто объедините два открытия в один with
, например ::1010 *
with open('urls.txt') as f, open('redirect.txt', 'w', buffering=1) as redf: