Timedelta n'est pas défini
Ci-dessous le code que j'y travaille. De ce que je peux dire, il y a pas de problème, mais lorsque je tente d'exécuter le morceau de code que j'ai un message d'erreur.
import os
import datetime
def parseOptions():
import optparse
parser = optparse.OptionParser(usage= '-h')
parser.add_option('-t', '--type', \
choices= ('Warning', 'Error', 'Information', 'All'), \
help= 'The type of error',
default= 'Warning')
parser.add_option('-g', '--goback', \
type= 'string')
(options, args) = parser.parse_args()
return options
options = parseOptions() now = datetime.datetime.now() subtract = timedelta(hours=options.goback) difference = now - subtract
if options.type=='All' and options.goback==24:
os.startfile('logfile.htm')
else:
print
print 'Type =', options.type,
print
print 'Go Back =', options.goback,'hours'
print difference.strftime("%H:%M:%S %a, %B %d %Y")
print
Erreur est comme suit:
Traceback (most recent call last):
File "C:\Python27\Lib\SITE-P~1\PYTHON~2\pywin\framework\scriptutils.py", line 325, in RunScript
exec codeObject in __main__.__dict__
File "C:\Users\user\Desktop\Python\python.py", line 19, in <module>
subtract = timedelta(hours=options.goback)
NameError: name 'timedelta' is not defined
Toute aide serait appréciée.
source d'informationauteur Mitchell
Vous devez vous connecter pour publier un commentaire.
Vous avez importé datetime, mais non défini timedelta. Vous souhaitez:
ou:
Aussi, votre goback paramètre est défini comme une chaîne de caractères, mais ensuite, vous passez à timedelta que le nombre d'heures. Vous aurez besoin de convertir un nombre entier, ou mieux encore définir les
type
argument dans votre option deint
à la place.Où vous avez
timedelta
vous avez besoin de mettredatetime.
avant, c'est donc en faitdatetime.timedelta
Il devrait être
datetime.timedelta
Je trouve ce problème peut se produire dans certains de mes sutpid action.
J'ai créer un fichier nommé datetime.py et même que j'ai renommer le fichier, j'ai toujours laisser le datetime.pyc dans le dossier...
Ainsi, chaque fichier d'importation dateime utilisera ce fichier et timedelta ne peut pas être trouvé.
Après j'ai supprimer le fichier:datetime.pyc, Il fonctionne.