Python和wxpython如何使用按钮从ftp下载文件

时间:2014-04-04 18:25:24

标签: python-2.7 ftp download wxpython ftplib

好吧,现在我正在使用ftp为我的应用程序下载文件,但问题是代码,因为它在我启动程序时下载文件,当我点击下载按钮时什么都不做

# Handlers for MainFrameBase events.
def DownloadButtonClick( ftp,directory,file ):
    ftp.cwd(directory)
    f = open(file,"wb")
    ftp.retrbinary("RETR " + file,f.write)
    f.close()

ftp = ftplib.FTP("ftp.apkmultitool.com")
ftp.login("adkesoapp@apkmultitool.com", "adkesoapp")

DownloadButtonClick(ftp, "", "testfile.txt")

我正在使用wxbuilder为我的应用程序设计GUI,我是python的新手,我试过Google寻找我的答案,但没有提出任何问题 我也想要按下按钮时它将检查文件,如果已存在,它将附加到文档而不是覆盖。

我可能只是废弃这个想法并从文本文件的原始链接下载,因为你怀疑我可以将文件上传回服务器并让它做检查并修改它 但我也不希望它导致重复的条目,所以任何建议,以防止这可能是最好的自己的问题,但这是我最终想要完成的基础

如果您想查看完整的来源

https://github.com/ADK-ESO-Project/ADK-ESO-Multi-Tool

1 个答案:

答案 0 :(得分:0)

以下是使用按钮创建GUI的代码段。单击按钮时,您会注意到它只是在控制台中打印Clicked。您可以将FTP代码放在那里,以便在您点击按钮时开始FTP内容。

<强>代码:

import wx

class Frame(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, style=wx.DEFAULT_FRAME_STYLE)
        myPanel = wx.Panel(self,-1)
        myButton = wx.Button(myPanel, -1, 'Download', size=(100,50), pos=(20,20))
        myButton.Bind(wx.EVT_LEFT_DOWN, self.onClick)
        self.Show(True)
    def onClick(self, e):
        print 'Clicked'
        #Put your code here that you
        #want to get executed when ever
        #you click the button.
        #Eg: call your method from here
        #DownloadButtonClick(ftp, "", "testfile.txt")

app = wx.App()
frame = Frame(None, wx.ID_ANY, 'Image')
app.MainLoop()

这是一款简单的应用。如果你想并行做更多的东西,你可能想使用线程。