gpt4 book ai didi

python - 使用 FtpLib 获取文件夹大小

转载 作者:行者123 更新时间:2023-11-28 20:22:56 25 4
gpt4 key购买 nike

我正在使用 FtpLib (Python) 从 ftp 服务器下载包含文件的文件夹。但是我想在开始下载之前知道文件夹的大小。

在文档中我找到了 FTP.size(filename) 但这只是针对文件而不是文件夹...我可以遍历文件夹中的所有文件但是文件夹有可能包含子文件夹。

那么有人知道如何使用 FtpLib 获取文件夹的大小吗?

最佳答案

经过反复试验,我找到了解决方案。

它基于 Alex Thornton 的解决方案,但我记得可能有子文件夹。当它是文件夹时,ftp.cwd() 命令成功并递归调用该函数。

ftp.cwd() 命令抛出错误时,它是一个文件,我们可以得到文件大小。类型设置为“I”(图像),这会强制二进制模式,因为在 ASCII 模式下不允许使用 ftp.size() 命令。

def get_total_size(self, directory):
size = 0
for filename in self.ftp.nlst(directory):
try:
self.ftp.cwd(filename)
size += self.get_total_size(filename)
except:
self.ftp.voidcmd('TYPE I')
size += self.ftp.size(filename)
return size

关于python - 使用 FtpLib 获取文件夹大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22090001/

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