FTP-Programm

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
logander4
User
Beiträge: 9
Registriert: Freitag 5. Februar 2010, 14:44

Hallo Python Community,
ich habe ein kleines Problem.
Ich möchte nämlich für meine privaten zwecke ein FTP Programm schreiben dass leicht zu bedienen ist!
Es sollten Eingabefelder sein mit Server, User und co.
Und ein Verzeichnis wechseln Button wo ein Eingabefeld ist, dort muss man das Verzeichnis eingeben! Und ein Download z. Upload Button sollte es auch geben! Nun ist es so dass ich das Grundgerüst im Kopf habe, auch schon niedergeschrieben! Aber es funktioniert nicht.
Nun aber funktioniert der Teil allein geschrieben im Interpreter:

Code: Alles auswählen

from ftplib import FTP

def verbinde():
    ftp = FTP(server.get())
    ftp.login(user.get(), pwd.get())
    ftp.dir()

from Tkinter import *
server = Entry(root)
user = Entry(root)
pwd = Entry(root)
server.pack()
user.pack()
pwd.pack()
connect = Button(root,text="Verbinden", command=verbinde)
connect.pack()
root.mainloop()
Nun das Funktioniert alleine, aber dass hier als erweiterte Version funktioniert nicht:

Code: Alles auswählen

from ftplib import FTP

def verbinden():
    ftp = FTP(server.get())
    ftp.login(user.get(),pwd.get())
    ftp.dir()

def dirwechseln():
    ftp.cwd(directory.get())

from Tkinter import *
root=Tk()
root.title('Serverlogin')
Label(root,text="Server:").grid(row=1,column=1)
Label(root,text="User:").grid(row=2,column=1)
Label(root,text="PWD:").grid(row=3,column=1)
server = Entry(root)
user = Entry(root)
pwd = Entry(root)
server.pack()
user.pack()
pwd.pack()
go = Button(root,text="Verbinden", command=verbinden)
go.pack()
directory = Entry(root)
directory.pack()
go2 = Button(root,text="Wechseln", command=dirwechseln)
go2.pack()
root.mainloop()
Könnt ihr mir helfen?
Das wäre sehr nett!
Vielen Dank im vorraus
Logander4
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ich hab's nicht ausprobiert. Mir fällt aber auf, dass Du sowohl grid als auch pack verwendest. Das sollte man nicht tun.
MfG
HWK
P.S.: Den Sternchen-Import solltest Du auch noch loswerden.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Bitte schau dir Klassen an.
Dein Problem ist, dass es in der 2. Funktion kein `ftp` gibt.
Das haette man im uebrigen sofort gemerkt, wenn du den Traceback gepostet haettest. Oder du selbst, wenn du ihn gelesen haettest.
Antworten