我试图使用Python的ftplib读取文件而不编写它们。大致相当于:
def get_page(url):
try:
return urllib.urlopen(url).read()
except:
return ""
但使用FTP。
我试过:
def get_page(path):
try:
ftp = FTP('ftp.site.com', 'anonymous', 'passwd')
return ftp.retrbinary('RETR '+path, open('page').read())
except:
return ''
但这不管用。文档中的唯一示例涉及使用ftp.retrbinary('RETR README', open('README', 'wb').write)
格式编写文件。不需要先写就可以读取ftp文件吗?
好吧,答案就在眼前:retrbinary方法接受对函数的引用作为第二个参数,每当从ftp连接检索文件内容时,都会调用该函数。
下面是一个简单的例子:
您应该实现writeFunc,以便它实际将读取的数据附加到内部变量,如下所示,该变量使用可调用对象:
更新:我意识到Python标准库中有一个模块专门用于这类事情,StringIO:
更新2:StringIO已被转入io。并入@TimRichardson的评论:
相关问题 更多 >
编程相关推荐