Variable als Filename

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
Benutzeravatar
lucanello
User
Beiträge: 15
Registriert: Freitag 11. Juli 2014, 13:05
Kontaktdaten:

Liebe Community.

Ich habe erneut ein Problem:
Ich habe eine Variable als Name für meine Text-Datei gewählt, welche per FTP hochgeladen werden soll. Jedoch ist der Befehl session.storbinary('STOR filename', file), welcher das Script hochladen soll in Gänsefüßchen geschrieben, was bedeutet, dass anstatt meine Datei mit dem Namen filename (filename = gen.txt (als Beispiel)) eine Datei mit dem Namen "filename" (also ohne Dateiendung) hochgeladen wird.
Ich wollte den User selber bestimmen lassen, wie die Datei heißen soll, was auch funktioniert, jedoch ist das hochladen fehlerhaft.

Code: Alles auswählen

k = raw_input(colored('How should the .txt-File be called? ', 'red'))
filename = '{}.txt'.format(k)
up = raw_input(colored('Should the .txt-File be uploaded? (Y/N) ', 'red'))
[...]
if up == 'y':
        import ftplib
        session = ftplib.FTP('lucakoroll.de',username,passwd)
        file = open(filename,'rb')
        session.storbinary('STOR filename', file)
        file.close()
        session.quit()
Ich hoffe, dass mir jemand weiterhelfen kann. Danke im Voraus :)
MfG Luca.
BlackJack

@lucanello: Du musst an der Stelle eine Zeichenkette erstellen die aus 'STOR ' gefolgt von dem Wert von `filename` besteht. Wie das geht weisst Du ja im Grunde schon, denn Du hast ja aus `k` den Wert für `filename` erstellt.

Import-Anweisungen gehören übrigens in aller Regel an den Anfang des Moduls. Dann sieht man leichter was das Modul alles verwendet und man schreibt auch nicht so leicht Import-Anweisungen unnötig mehrfach.
Benutzeravatar
lucanello
User
Beiträge: 15
Registriert: Freitag 11. Juli 2014, 13:05
Kontaktdaten:

Vielen Dank für die schnelle Antwort, mit dem Code:

Code: Alles auswählen

session.storbinary('STOR {}.txt.format(k)', file)
lädt er mir jedoch widerum eine Datei namens "{}.txt.format(k)" hoch...
Mit dem Code:

Code: Alles auswählen

session.storbinary('STOR '{}.txt'.format(k)', file)
gibt er mir einen Syntax-Fehler zurück:

Code: Alles auswählen

  File "codegenerator.py", line 51
    session.storbinary('STOR '{}.txt'.format(k)', file)
                              ^
SyntaxError: invalid syntax
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

So funktioniert das nicht. Du kannst nicht so lange rumraten, bis du irgendwann die richtige Kombination von Anführungszeichen hast. Die Hilfe zur format-Methode gibt es übrigens hier. Schau dir mal den Unterschied zwischen deinem Code und dem dort gezeigtem Beispiel an. In deinem ersten Post hast du es ja auch schon richtig verwendet.
Das Leben ist wie ein Tennisball.
Benutzeravatar
lucanello
User
Beiträge: 15
Registriert: Freitag 11. Juli 2014, 13:05
Kontaktdaten:

Aaaah vielen lieben Dank!
Hat geklappt :)
Antworten