Python ftplib can't get size of file before download?

前端 未结 3 1142
遇见更好的自我
遇见更好的自我 2021-01-11 17:19

I\'m using ftplib to transfer files. Everything is working great. Now I\'m trying to get the size of the target file before downloading.

  1. First, I tried ju

相关标签:
3条回答
  • 2021-01-11 17:58

    "Server complained that I can't do that in ascii mode." -- Try showing the exact code that you used AND the exact text of the server response. Use copy/paste, don't type from memory.

    Do you have access to a command-line FTP client? If not, get one. Use it to experiment with what the server can do. A client command like REMOTEHELP is your friend. Example:

    ftp> remotehelp size
    214 Syntax: SIZE <sp> pathname
    

    This indicates that the server to which I was connected will support a SIZE command.

    0 讨论(0)
  • 2021-01-11 18:04

    Ftplib can get the size of a file before downloading. As the documentation says:

    FTP.size(filename) Request the size of the file named filename on the server. On success, the size of the file is returned as an integer, otherwise None is returned. Note that the SIZE command is not standardized, but is upported by many common server implementations

    Apparently your server doesn't support this feature.

    0 讨论(0)
  • 2021-01-11 18:23

    Very late reply, but here's the correct answer. This works with ProFTPD.

    ftp.sendcmd("TYPE i")    # Switch to Binary mode
    ftp.size("/some/file")   # Get size of file
    
    0 讨论(0)
提交回复
热议问题