1
私は簡単な質問があり、ダムと聞こえるかもしれません。しかし、私の愛のために、私はオンラインで、または自分で解決策を見つけることができません!私は自分自身のためにPythonを使ってFTPクライアントを作ろうとしており、TkinterのリストボックスをFTPサーバ上のすべてのファイル名で表示しようとしています。しかし、私は表示するテキストを取得することはできません! retrlines
は、応答コード、ないリストを返すため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
これを行う方法を説明する少しのコードを追加しました。 'ftp.retrlines( 'LIST'、lines.append)' –
注:コード例では、 'ftp.retrlines'が返った後、' lines'は各要素が1であるリストを含んでいますFTPサーバーが応答した回線の数。今、それらを処理するのはあなた次第です:) –