相关疑难解决方法(0)

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

我有两段代码,它们都是为了做同样的事情 - 坐在一个循环中,直到写完文件.它们主要用于通过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]
Run Code Online (Sandbox Code Playgroud)

另一个版本用于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
Run Code Online (Sandbox Code Playgroud)

我已经看到多个实例,其中使用第一种方法报告,当文件实际上仍在增长时,大小相同.是否有一些潜在的原因导致os.stat()错误报告而os.path.getsize()不会?我没有看到任何错误或异常.

python python-2.6

10
推荐指数
1
解决办法
1万
查看次数

使用 Python 更快地查找大文件?

我正在尝试使用 Python 找到一种更快的方法来筛选包含大约 9 个其他目录的大目录(大约 1.1TB),并在多个 Linux 服务器上查找大于 200GB 或类似大小的文件,并且它必须是Python。

我尝试过很多方法,例如使用脚本调用 du -h,但 du 速度太慢,无法遍历 1TB 大的目录。我也尝试过像 find ./ +200G 这样的 find 命令,但这也需要永远。

我也尝试过 os.walk() 和 .getsize() 但它是同样的问题 - 太慢。所有这些方法都需要花费几个小时,如果有人能够帮助我,我需要帮助找到另一个解决方案。因为我不仅必须在一台服务器上搜索大文件,而且还必须通过近 300 台服务器进行 ssh 并输出所有> 200GB 文件的巨大列表,并且我尝试过的三种方法都不会能够完成那件事。任何帮助表示感谢,谢谢!

python linux

2
推荐指数
1
解决办法
3565
查看次数

标签 统计

python ×2

linux ×1

python-2.6 ×1