IOError: [Errno 22] invalid mode ('w+') or filename: 'hodor_2017-05-09_14:03:38.txt'
So war ich Probleme mit einer Datei zu erstellen, wo, wie es „name“ [Trennzeichen] „Datumzeit“ .txtErrno 22 ungültig Modus w + oder Dateiname
ich verschiedene Bits von Code war auf der Suche nach oben ist wie :
Turn a string into a valid filename?
python: how to convert a string to utf-8
https://github.com/django/django/blob/master/django/utils/safestring.py
und es scheint immer noch nicht für mich zu arbeiten.
Mein Konzept ist einfach: Geben Sie bei einem Namen und Inhalt eine Datei mit diesem Namen und diesem Inhalt.
Mein Code ist:
def create_json_file(name, contents):
filename = u"%s_%s.json" % (name, datetime.datetime.now().strftime("%Y/%m/%d_%H:%M:%S"))
print "%s" % filename
filename = slugify(filename)
f = open(filename, "w+")
f.write(contents)
f.close()
und wie Sie i gewesen, es zwicken haben sehen können. Ich habe die Ergebnisse von django nachgeschlagen, die slugify verwenden.
Mein Original hatte diese Zeile nicht. Vielleicht gibt es eine bessere Möglichkeit, die Datei auch zu benennen. Ich denke, der Name und Datetime ist ziemlich normal, aber ich war nicht sicher, welche Begrenzer ich zwischen Name und Datetime usw. verwenden sollte.
Für den Datensatz verwende ich derzeit nicht Django, weil ich keine Notwendigkeit für das Framework habe. Ich versuche nur eine Möglichkeit zu testen, eine Zeichenfolge und eine Json-Karte zu übergeben und im Wesentlichen in eine config.json
Datei umzuwandeln.
Schließlich möchte ich eine AJAX-Anfrage von einer Website dazu nutzen, dies zu tun, aber das ist außerhalb des Umfangs dieser Frage.
Bedeutet das nicht nur, dass Windows Doppelpunkte in Dateinamen verbietet? Die Lösung besteht darin, einen anderen Separator zu verwenden. – tdelaney