Python相当于这个Curl命令

时间:2016-08-26 19:01:30

标签: python curl

我正在尝试使用python下载文件,模仿与此curl命令相同的行为:

curl  ftp://username:password@example.com \
    --retry 999 \
    --retry-max-time 0
    -o 'target.txt' -C -

这在python中看起来怎么样?

我已经研究过的事情:

  • 请求:没有ftp支持

  • Python-wget:没有下载恢复支持

  • requests-ftp:没有下载恢复支持

  • fileDownloader:broken(?)

我猜测人们需要从头开始构建这个,并使用pycurl或urllib2或类似的东西进行低级别。

我正在尝试在python中创建这个脚本,我感到迷茫。我应该从python子进程调用curl吗?

非常感谢写入方向的任何一点

2 个答案:

答案 0 :(得分:1)

你可以使用python的内置ftplib

以下是代码:

from ftplib import FTP

ftp = FTP('example.com', 'username', 'password') #logs in

ftp.retrlines() # to see the list of files and directories ftp.cwd('to change to any directory')

ftp.retrbinary('RETR filename', open('Desktop\filename', 'wb').write) # start downloading

ftp.close() # close the connection

支持自动恢复。我甚至尝试关闭我的wifi并检查下载是否正在恢复。

您可以参考/Python27/Lib/ftplib.py获取默认的GLOBAL_TIME_OUT设置。

答案 1 :(得分:0)

这个库用于从ftp服务器下载文件

fileDownloader.py

下载文件

downloader = fileDownloader.DownloadFile(‘http://example.com/file.zip’, “C:UsersusernameDownloadsnewfilename.zip”, (‘username’,’password’)) 

downloader.download()

恢复下载

downloader = fileDownloader.DownloadFile(‘http://example.com/file.zip’, “C:UsersusernameDownloadsnewfilename.zip”, (‘username’,’password’)) 

downloader.resume()