gpt4 book ai didi

Python os.stat(file_name).st_size 与 os.path.getsize(file_name)

转载 作者:太空狗 更新时间:2023-10-29 18:20:28 26 4
gpt4 key购买 nike

我有两段代码,它们都是为了做同样的事情——坐在一个循环中,直到一个文件被写入完成。它们都主要用于通过 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() 不会报告的根本原因是什么?我没有看到任何错误或异常返回。

最佳答案

在 CPython 2.6 和 2.7 中,os.path.getsize() 实现如下:

def getsize(filename):
"""Return the size of a file, reported by os.stat()."""
return os.stat(filename).st_size

由此看来,很明显没有理由期望这两种方法会有不同的行为(除非可能是由于代码中循环的不同结构)。

关于Python os.stat(file_name).st_size 与 os.path.getsize(file_name),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18962166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com