pysftp:如何获取远程文件夹大小

时间:2015-09-21 07:26:30

标签: python sftp paramiko pysftp

使用pysftp时如何获取远程文件夹的大小?

通过stat返回的对象看起来不正确,我的代码:

fdStat = sftpClient.stat(remotePath);
print(fdStat.st_size);

输出:

drwxr-xr-x   1 0        99           4096 21 Sep 11:13 ?
4096

=>文件夹remotePath很大,而且它的大小远大于4096。

2 个答案:

答案 0 :(得分:1)

.stat方法返回与* nix ls命令相同的信息。此处的大小表示数据的大小,目录本身(=包含文件的元数据)占用磁盘。它不是包含文件的大小。

一般来说,使用pysftp或SFTP协议中的单个调用,无法直接获取目录中文件的总大小。

你可以用它来列出目录(如果需要的话递归)并总结各个文件的大小。

答案 1 :(得分:0)

我通过调用execute()来处理,然后处理linux服务器的返回值:

sftpClient.execute("du --apparent-size --block-size=1 " + remotePath)