1
我有一个快速的问题,它听起来很愚蠢。但对于我的爱,我无法在网上或自己找到解决方案!我正在尝试为我自己制作一个使用python的FTP客户端,并且我试图在Tkinter中创建一个列表框,以显示FTP服务器上的所有文件名。但我无法显示文字!这里是我到目前为止下面的代码:Python 2.7 Tkinter和ftplib
# Import the FTP object from ftplib
from ftplib import FTP
from Tkinter import *
app = Tk()
app.title("FTP")
app.geometry("300x500")
def handleDownload(block):
file.write(block)
print ".",
def login():
ftp.login(username.get(),password.get())
# This is where I am held up I tried ftp.retrlines('LIST') but it would
# not be inserted into to the list box instead it inserted "Tranfer Complete" at the end!
# Any suggetion?
h = ?
stuff = Listbox(app)
stuff.insert(END, h)
stuff.pack()
filename = "Steam Engine Poster.pdf"
Label(app, text ='Opening local file ' + filename).pack()
file = open(filename, 'wb')
Label(app, text = "Downloading Steam Engine Poster.pdf").pack()
ftp.retrbinary('RETR ' + filename, handleDownload)
Label(app, text = "Closing FTP connection!").pack()
ftp.close()
ftp = FTP('sciphigames.com')
Label(app, text = "Login").pack()
username = StringVar(None)
username = Entry(app, text = "Username: ")
username.pack()
password = StringVar(None)
password = Entry(app, text = "Password: ")
password.pack()
button = Button(app, text = "Login!", command = login)
button.pack()
app.mainloop()
你会碰巧知道回电是什么吗? – user1114215 2012-01-01 14:54:13
我已经添加了一些代码来解释如何做到这一点。你可以使它更加紧凑:'ftp.retrlines('LIST',lines.append)' – 2012-01-01 14:56:15
注意:在示例代码中,'ftp.retrlines'返回后,'lines'包含一个列表,其中每个元素是一个FTP服务器回复的行数。现在,由您来处理它们:) – 2012-01-01 14:57:29