Python ftplib可以';下载前无法获取文件大小?
我正在使用ftplib传输文件。一切都很顺利。现在,我试图在下载之前获得目标文件的大小Python ftplib可以';下载前无法获取文件大小?,python,ftplib,Python,Ftplib,我正在使用ftplib传输文件。一切都很顺利。现在,我试图在下载之前获得目标文件的大小 首先,我尝试使用ftp.size(文件名)获取大小。服务器抱怨我不能在ascii模式下这样做 然后我尝试使用ftp.sendcmd(“二进制”)和ftp.sendcmd(“bin”)设置二进制模式。在这两种情况下,服务器都抱怨“500个二进制文件无法理解” 在这种情况下,ftplib能否在下载之前获得文件的大小?我无法控制FTP服务器,也无法更改其运行方式 谢谢Ftplib可以在下载之前获得文件的大小。正如文
谢谢Ftplib可以在下载之前获得文件的大小。正如文件所说: FTP.size(文件名) 请求的大小 服务器上名为filename的文件。 成功时,文件的大小为 作为整数返回,否则为无 他回来了请注意 命令不是标准化的,而是标准化的 由许多通用服务器支持 实施 显然,您的服务器不支持此功能。“服务器抱怨我无法在ascii模式下执行此操作。”--尝试显示您使用的确切代码和服务器响应的确切文本。使用复制/粘贴,不要从内存中键入 您有权访问命令行FTP客户端吗?如果没有,就买一个。使用它来试验服务器可以做什么。像REMOTEHELP这样的客户端命令是您的朋友。例如:
ftp> remotehelp size
214 Syntax: SIZE <sp> pathname
ftp>remotehelp大小
214语法:大小路径名
这表示我所连接的服务器将支持SIZE命令。很晚才回复,但下面是正确答案。这适用于ProFTPD
ftp.sendcmd("TYPE i") # Switch to Binary mode
ftp.size("/some/file") # Get size of file
为完整起见:要切换回ASCII,请使用
类型A