首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ftplib文件选择

ftplib文件选择
EN

Stack Overflow用户
提问于 2012-09-14 11:21:51
回答 1查看 2.9K关注 0票数 2

手册上说

要下载文件,请使用ftp.retrlines(“RETR”+文件名)

以下是我所做的:

代码语言:javascript
复制
ftp.retrbinary('RETR media/backups/andrey.txt', open("file_to_get.txt", 'a+').write)

请有人建议如何将以前通过raw_input添加的文件名变量放在"RETR“命令之后?使用了%s,但这不起作用,它会像文件名的一部分一样被处理。

代码语言:javascript
复制
ftp.retrbinary('RETR %s', open("file_to_get.txt", 'a+').write) %raw_input("print file name")

产生这种情况:

代码语言:javascript
复制
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:\>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-14 11:39:12

这也许能行

代码语言:javascript
复制
filename = 'andrey.txt'
path = "media/backups/"
ftp.cwd(path)
ftp.retrbinary("RETR " + filename ,open(filename, 'a+').write)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12423501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档