Python inserting variable string als Dateiname

Ich versuche, eine Datei-Datei einen eindeutigen Dateinamen zu erstellen, jedes Mal, wenn mein Skript läuft, ist es nur beabsichtigt, wöchentlich oder monatlich zu sein. So entschied ich mich, das Datum für den Dateinamen zu verwenden.

f = open('%s.csv', 'wb') %name 

Ist, wo ich diesen Fehler bekomme.

 Traceback (most recent call last): File "C:\Users\User\workspace\new3\stjohnsinvoices\BabblevoiceInvoiceswpath.py", line 143, in <module> f = open('%s.csv', 'ab') %name TypeError: unsupported operand type(s) for %: 'file' and 'str' 

Es funktioniert, wenn ich einen statischen Dateinamen verwende, gibt es ein Problem mit der offenen Funktion, das heißt, du kannst nicht so einen String passieren?

Name ist ein String und hat Werte wie:

 31/1/2013BVI 

Vielen Dank für jede Hilfe

3 Solutions collect form web for “Python inserting variable string als Dateiname”

Sie müssen % name direkt nach dem String setzen:

 f = open('%s.csv' % name, 'wb') 

Der Grund, warum Ihr Code nicht funktioniert, ist, weil Sie versuchen, % eine Datei, die nicht String Formatierung ist, und ist auch ungültig.

Du kannst so etwas machen

 filename = "%s.csv" % name f = open(filename , 'wb') 

Oder f = open('%s.csv' % name, 'wb')

Und mit der neuen String-Formatierungsmethode …

 f = open('{0}.csv'.format(name), 'wb') 
  • Python, wie man den Backslash mit re.sub ()
  • Konvertieren von Unicode-Zeichenfolge in chinesische Zeichen
  • Konvertieren Sie Unicode-Daten in int in python
  • Lesen einer riesigen .csv-Datei
  • Datei "<string>" im Python-Traceback
  • Konzert jedes Element der Liste mit jedem Element der zweiten Liste
  • Text zwischen () und [] in Python entfernen
  • Operator.itemgetter oder lambda
  • Python-Skript läuft durch IDLE hat keine Ausgabe
  • Wie man das Wörterbuch in mehrere Wörterbücher schnell aufteilt
  • Aufteilen eines Netzwerks in Subnetze von mehreren Präfixen
  • Python ist die beste Programmiersprache der Welt.