Mam dwa kawałki kodu, które mają za zadanie zrobić to samo - siedzieć w pętli, dopóki plik nie zostanie zrobiony napisany do. Oba są używane głównie do plików przychodzących za pośrednictwem FTP/SCP.Python os.stat (nazwa_pliku) .st_size versus os.path.getsize (nazwa_pliku)
Jedna wersja kodu to używając 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]
Inna wersja to robi z 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
widziałem wiele przypadków, w których za pomocą pierwszej metody informuje, że rozmiary są takie same, podczas gdy plik wciąż rośnie. Czy istnieje jakiś podstawowy powód, dla którego os.stat()
nieprawidłowo zgłasza się, podczas gdy os.path.getsize()
nie będzie? Nie widzę żadnych błędów ani wyjątków.
hmm, bardzo dziwne. Będę musiał przyjrzeć się dokładniej pozostałej części kodu, ale dobrze to wiedzieć. dzięki! – Valdogg21