Питон os.stat (имя_файла) .st_size против os.path.getsize (имя_файла)
У меня есть два куска кода, которые предназначены для того, чтобы делать одно и то же - сидеть в цикле, пока файл не будет записан. Оба они в основном используются для файлов, поступающих через FTP / SCP.
Одна версия кода делает это с помощьюos.stat()[stat.ST_SIZE]
:
size1,size2 = 1,0
while size1 != size2:
size1 = os.stat(file_name)[stat.ST_SIZE]
time.sleep(300)
size2 = os.stat(file_name)[stat.ST_SIZE]
Другая версия делает это сos.path.getsize()
:
size1,size2 = 0,0
while True:
size2 = os.path.getsize(file_name)
if size1 == size2:
break
else:
time.sleep(300)
size1 = size2
Я видел несколько случаев, когда при использовании первого метода сообщалось, что размеры одинаковы, а файл на самом деле продолжает расти. Есть ли какая-то основная причина, почемуos.stat()
будет неправильно сообщать, покаos.path.getsize()
не будет? Я не вижу никаких ошибок или исключений.