当我使用retrbinary在python中从ftp下载文件时,默认情况下下载的文件在哪里。有没有办法更改此默认文件夹? 提前谢谢
答案 0 :(得分:2)
ftplib
库中的retrbinary函数采用一个回调函数,该函数对于检索到的每个数据块调用一次。您自己编写此回调函数,因此可以更改保存的文件夹文件。
一些示例代码:
#!/usr/bin/env python
import sys
from ftplib import FTP
ftphost, file_to_retrieve, output_path = sys.argv[1:4]
print "Retreiving %(file_to_retrieve)s from FTP host %(ftphost)s, saving to %(output_path)s" % locals()
ftp = FTP(ftphost)
ftp.login()
outfile = None
def data_callback(data):
global outfile
if outfile is None:
outfile = open(output_path, 'w')
outfile.write(data)
ftp.retrbinary("RETR %s" % file_to_retrieve, data_callback)
if outfile is not None:
outfile.close()
要检索ftp://ftp.sunet.se/pub/Linux/kernel.org/linux/docs/man-pages/man-pages-3.32.tar.gz
并将其另存为/tmp/man-pages.tar.gz
,请按以下步骤运行此代码:
$ python testftp.py ftp.sunet.se /pub/Linux/kernel.org/linux/docs/man-pages/man-pages-3.32.tar.gz /tmp/man-pages.tar.gz