327 votes

Comment créer un nom de fichier avec la date et l'heure actuelles en Python ?

Voici un code fonctionnel (création du fichier avec succès)

sys.stdout = open('filename1.xml', 'w')

J'essaie maintenant de nommer le fichier avec la date et l'heure actuelles (je ne suis pas un expert en Python).

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")
sys.stdout = open(filename1 + '.xml', 'w')

Je veux écrire un nom de fichier avec la date et l'heure exactes, c'est un fichier xml, que le programme a déjà créé, j'ai juste besoin de nommer le fichier. Le code ci-dessus ne fonctionne pas.

L'erreur a été renvoyée :

  File "./fix.py", line 226, in <module>
    filenames = datetime.now().strftime("%Y%m%d-%H%M%S")
AttributeError: 'module' object has no attribute 'now'

611voto

Levon Points 34085

Sans utiliser datetime Cette méthode résout votre problème (répond à votre question) en obtenant une chaîne de caractères avec le format de date et d'heure que vous avez spécifié :

import time
timestr = time.strftime("%Y%m%d-%H%M%S")
print timestr

rendements :

20120515-155045

afin que votre nom de fichier puisse ajouter ou utiliser cette chaîne.

82voto

Andy Points 8252

Changez cette ligne

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")

A

filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")

Notez le supplément datetime . Vous pouvez également modifier votre import datetime a from datetime import datetime

77voto

Dev Aggarwal Points 457

Celui-ci est beaucoup plus lisible pour les humains.

from datetime import datetime

datetime.now().strftime("%Y_%m_%d-%I_%M_%S_%p")

'2020_08_12-03_29_22_AM'

40voto

David Heffernan Points 292687

now est une méthode de classe dans la classe datetime dans le module datetime . Vous devez donc

datetime.datetime.now()

Ou vous pouvez utiliser une autre importation

from datetime import datetime

De cette façon, vous pouvez utiliser datetime.now selon le code indiqué dans la question.

7voto

oneindelijk Points 130

Je suis surpris qu'il n'y ait pas un formateur unique qui renvoie un format par défaut (et sûr) 'pour ajouter dans le nom du fichier' - tout le temps, Nous pourrions simplement écrire FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'

"%x" instead of "%Y%m%d-%H%M%S"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X