使用pysftp时如何获取远程文件夹的大小?
通过stat返回的对象看起来不正确,我的代码:
fdStat = sftpClient.stat(remotePath);
print(fdStat.st_size);
输出:
drwxr-xr-x 1 0 99 4096 21 Sep 11:13 ?
4096
=>文件夹remotePath
很大,而且它的大小远大于4096。
答案 0 :(得分:1)
.stat
方法返回与* nix ls
命令相同的信息。此处的大小表示数据的大小,目录本身(=包含文件的元数据)占用磁盘。它不是包含文件的大小。
一般来说,使用pysftp或SFTP协议中的单个调用,无法直接获取目录中文件的总大小。
你可以用它来列出目录(如果需要的话递归)并总结各个文件的大小。
答案 1 :(得分:0)
我通过调用execute()来处理,然后处理linux服务器的返回值:
sftpClient.execute("du --apparent-size --block-size=1 " + remotePath)