Unten ist der Code, an dem ich arbeite. Von dem, was ich sagen kann, gibt es kein Problem, aber wenn ich versuche, den Code zu starten, erhalte ich einen Fehler.Timedelta ist nicht definiert
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
Fehler ist wie folgt:
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
Jede Hilfe würde geschätzt.
Perfekt, vielen Dank für die Hilfe. Ich denke, es ist viel einfacher zu bedienen: 'datetime.timedelta' und ich habe den Typ zu int geändert. Danke nochmal. – Mitchell
Ja, wenn Sie Datetime importiert haben, indem Sie auf die Datedelta-Klasse mit "datetime.timedelta" verweisen, wäre dies die übliche Best Practice. Der Punkt ist, dass das Importieren des Datetime-Moduls alle Namen, die es definiert, erhält, aber Sie müssen sie über seinen Namespace referenzieren. Sie werden das allgemeine Muster des Importierens eines Moduls sehen und dann sehr oft auf seinen Inhalt verweisen. –