Wget和Python下载管理器?

时间:2013-06-19 03:28:56

标签: python download wxpython wget downloading

我在使用python下载管理器时遇到了困难。我已经尝试下载只有wget,它工作。我还创建了我的wxpython接口。但我现在的问题是如何将两者合并?我如何将wget下载代码添加到我的wxpython界面并使其工作?是否可以将wget与python结合起来提出下载管理器,例如winwget或visualwget?


import os
from ftplib import FTP

ftp = FTP("ftpsite","username", "password")
ftp.login()
ftp.retrlines("LIST")

ftp.cwd("folderOne")
ftp.cwd("subFolder")

listing = []
ftp.retrlines("LIST", listing.append)
words = listing[0].split(None, 8)
filename = words[-1].lstrip()

#download the file
local_filename = os.path.join(r"C:\example", file)
lf = open(local_filename, "wb")
ftp.retrbinary("RETR " + filename, lf.write, 8*1024)
lf.close()

我已经在你的博客上试过了这段代码。但它说,

Traceback (most recent call last):
  File "directory", line 4, in <module>
    ftp = FTP("ftp://samoa.gsfc.nasa.gov/site/", "user", "password")
  File "C:\Python27\lib\ftplib.py", line 117, in __init__
    self.connect(host)
  File "C:\Python27\lib\ftplib.py", line 132, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout)
  File "C:\Python27\lib\socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11004] getaddrinfo failed

代码有什么问题?

1 个答案:

答案 0 :(得分:1)

您需要做的就是使用事件处理程序。例如,您可以在文本控件中复制并粘贴下载URL。然后你会有一个按钮将该下载添加到ListCtrl或更好的ObjectListview小部件。现在,您可以显示下载列表。

您可以在添加项目时开始下载,也可以使用单独的按钮启动所有下载。或者您可以使用第二个按钮按顺序下载内容而不是并行下载。由于下载文件是一个长时间运行的过程,因此您需要在线程中执行下载部分。您应该查看以下链接之一的详细信息:

您可能还会发现这个简单的下载示例很有用:http://wiki.wxpython.org/DownloadWidget

这个旧帖子也解决了你的一些问题:http://wxpython-users.1045709.n5.nabble.com/wxPython-Python-equivalent-to-wget-lt-url-gt-td2358484.html

然后有关于使用Python下载文件的教程:http://www.blog.pythonlibrary.org/2012/06/07/python-101-how-to-download-a-file/