Hier ist ein Funktionscode (Datei mit Erfolg erstellen)
sys.stdout = open('filename1.xml', 'w')
Jetzt versuche ich, die Datei mit der aktuellen Datums- und Uhrzeitangabe zu benennen (ich bin kein Python-Experte).
filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")
sys.stdout = open(filename1 + '.xml', 'w')
Ich möchte einen Dateinamen mit dem genauen Datum und der genauen Uhrzeit schreiben. Es handelt sich um eine XML-Datei, die das Programm bereits erstellt hat. Ich muss nur die Datei benennen. Der obige Code funktioniert nicht.
[BEARBEITET] - Der Fehler wurde zurückgegeben
File "./fix.py", line 226, in <module>
filenames = datetime.now().strftime("%Y%m%d-%H%M%S")
AttributeError: 'module' object has no attribute 'now'
=
zwischenfilename
unddatetime
Antworten:
Wenn Sie es nicht verwenden
datetime
, wird Ihr Problem gelöst (beantwortet Ihre Frage), eine Zeichenfolge mit dem von Ihnen angegebenen aktuellen Zeit- und Datumsformat zu erhalten:Ausbeuten:
Ihr Dateiname könnte diese Zeichenfolge anhängen oder verwenden.
quelle
print(timestr)
. Haben Sie diesen Text von oben kopiert? Vielleicht ein Tippfehler sonst?time
Modul beschattet .now
ist eine Klassenmethode in der Klassedatetime
im Moduldatetime
. Also brauchst duOder Sie können einen anderen Import verwenden
Auf diese Weise können Sie
datetime.now
gemäß dem Code in der Frage verwenden.quelle
Ändern Sie diese Zeile
Zu
Beachten Sie das Extra
datetime
. Alternativ ändern Sie Ihreimport datetime
zufrom datetime import datetime
quelle
import datetime
irgendwo ist.Dieser ist viel menschlicher lesbar.
quelle
Ich bin überrascht, dass es keinen einzigen Formatierer gibt, der ein Standardformat (und ein sicheres Format) zum Anhängen im Dateinamen zurückgibt - das Format der Zeit, das wir einfach schreiben könnten
FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'
quelle
Hier sind einige, die ich brauchte, um den Datums- / Zeitstempel in den Ordnernamen aufzunehmen, um Dateien von einem Web-Scraper zu sichern.
quelle
folder_to_save_files = shutil.os.path.join(drive_letter, folder_name +folder_time)
(auch einimport shutil
Anweisung kann dieimport os
Anweisung ersetzen )