ftplib file select
手册说
To download a file, use ftp.retrlines('RETR ' + filename)
我要做的是:
1 | ftp.retrbinary('RETR media/backups/andrey.txt', open("file_to_get.txt", 'a+').write) |
请有人建议如何在"retr"命令后放置以前通过原始输入添加的文件名变量?使用了%s,但这不起作用,它会像文件名的一部分一样被处理。
1 | ftp.retrbinary('RETR %s', open("file_to_get.txt", 'a+').write) %raw_input("print file name") |
产生这种情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | c:\>python ftp_client.py Enter host95.31.8.52 drwxrwxrwx 61 99 102 32768 Sep 14 01:39 backpl drwxrwxrwx 19 99 102 4096 Sep 7 13:47 media drwxrwxrwx 2 99 102 4096 Jul 2 11:15 naswebsite Traceback (most recent call last): File"ftp_client.py", line 12, in <module> ftp.retrbinary('RETR %s', open("file_to_get.txt", 'a+').write) %raw_input("p rint file name") File"C:\Python27\lib\ftplib.py", line 399, in retrbinary conn = self.transfercmd(cmd, rest) File"C:\Python27\lib\ftplib.py", line 361, in transfercmd return self.ntransfercmd(cmd, rest)[0] File"C:\Python27\lib\ftplib.py", line 330, in ntransfercmd resp = self.sendcmd(cmd) File"C:\Python27\lib\ftplib.py", line 244, in sendcmd return self.getresp() File"C:\Python27\lib\ftplib.py", line 219, in getresp raise error_perm, resp ftplib.error_perm: 550 Can't open %s: No such file or directory c:\> |
这可能会起作用
1 2 3 4 | filename = 'andrey.txt' path ="media/backups/" ftp.cwd(path) ftp.retrbinary("RETR" + filename ,open(filename, 'a+').write) |