ftp upload

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dark-lion
User
Beiträge: 46
Registriert: Mittwoch 25. April 2012, 14:22

ich habe einen script gemacht, mit dem man eine datei auswählen kann und diese dann hochladen:

Code: Alles auswählen

import ftplib, easygui
ftp = ftplib.FTP()
ftp.connect("deinedomain.de")
ftp.login("Benutzername", "passwort")
ftp.cwd("/")
f = easygui.fileopenbox() 
ftp.retrbinary(f, f)
f.close()
print "OK"
ftp.quit()
raw_input("Press Enter...")
doch immer, wenn ich ein datei ausgewählt habe(123.txt), kommt diese fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Users\User\Desktop\123.py", line 7, in <module>
    ftp.retrbinary(f, f)
  File "C:\Python25\lib\ftplib.py", line 390, in retrbinary
    conn = self.transfercmd(cmd, rest)
  File "C:\Python25\lib\ftplib.py", line 356, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "C:\Python25\lib\ftplib.py", line 327, in ntransfercmd
    resp = self.sendcmd(cmd)
  File "C:\Python25\lib\ftplib.py", line 241, in sendcmd
    return self.getresp()
  File "C:\Python25\lib\ftplib.py", line 216, in getresp
    raise error_perm, resp
error_perm: 500 C:\USERS\USER\DESKTOP\DARK-LION-SOFTWARE\123.TXT not understood
wie kann ich den fehler beheben?
PS: ich habe als server schon einen normalen eingesetzt. :K
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Naja, du übergibst retrbinary ja auch irgendwelchen völligen Stuss, was erwartest du?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
dark-lion
User
Beiträge: 46
Registriert: Mittwoch 25. April 2012, 14:22

Code: Alles auswählen

f = easygui.fileopenbox() 
ftp.retrbinary(f, f)
falls du das meinst , dass habe ich jetzt geändert:

Code: Alles auswählen

f = easygui.fileopenbox() 
ftp.retrbinary(f, "123")
aber der fehler ist immer noch der gleiche.:(
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

"123" ist ja auch keine Callback-Funktion sondern eine Zahl. Das ist wie auf eine "Entweder-Oder"-Frage mit "Ja" zu antworten.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
dark-lion
User
Beiträge: 46
Registriert: Mittwoch 25. April 2012, 14:22

was sollte ich dann deiner Meinung nach reinschreiben?
weil Argument 1 ist ja die Datei, Argument 2 ist der Name der Datei.
ich versteh nicht, was daran falsch ist.:(
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

dark-lion hat geschrieben:weil Argument 1 ist ja die Datei, Argument 2 ist der Name der Datei.
ich versteh nicht, was daran falsch ist.:(
Stimmt doch beides nicht. Das erste ist der Befehl und das zweite eine Callback-Funktion. Und das steht auch in der ftplib-Dokumentation, zusammen mit passendem Beispiel.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Überhaupt ist das für's *hochladen* die falsche Methode.
dark-lion
User
Beiträge: 46
Registriert: Mittwoch 25. April 2012, 14:22

ok habs auch grad gemerkt und geblickt
habs jetzt so gemacht:

Code: Alles auswählen

f = open("123.txt", "r") 
ftp.storbinary("STOR test.txt", f)
danke für die hilfe:D
Antworten