use*_*061 9 python time datetime sleep
我在Windows上使用Python 2.7,我正在编写一个使用时间和日期时间模块的脚本.我以前做过这个,但是python似乎对于加载两个模块以及我之前使用过的方法似乎并不敏感.这是我使用的不同语法和我目前得到的错误.
首先我试过:
from datetime import *
from time import *
...
checktime = datetime.today() - timedelta(days=int(2))
checktime = checktime.timetuple()
...
filetimesecs = os.path.getmtime(webgatelogdir + '/' + fn)
file = webgatelogdir + '/' + fn
filetime = localtime(filetimesecs)
...
else: time.sleep(60)
Run Code Online (Sandbox Code Playgroud)
错误:
else: time.sleep(60) AttributeError: 'builtin_function_or_method' object has no attribute 'sleep'
然后我尝试了:
from datetime import *
from time import *
...
checktime = datetime.today() - timedelta(days=int(2))
checktime = checktime.timetuple()
...
filetimesecs = os.path.getmtime(webgatelogdir + '/' + fn)
file = webgatelogdir + '/' + fn
filetime = localtime(filetimesecs)
...
#else: time.sleep(60) # comment out time.sleep statement
Run Code Online (Sandbox Code Playgroud)
我没有错误,但也没有睡眠延迟.
接下来我尝试了:
from datetime import *
import time
...
checktime = datetime.today() - timedelta(days=int(2))
checktime = checktime.timetuple()
...
filetimesecs = os.path.getmtime(webgatelogdir + '/' + fn)
file = webgatelogdir + '/' + fn
filetime = localtime(filetimesecs)
...
#else: time.sleep(60) # comment out time.sleep statement
Run Code Online (Sandbox Code Playgroud)
错误:
filetime = localtime(filetimesecs) NameError: name 'localtime' is not defined
另一个修改,我试过这个:
import time
import datetime
...
checktime = datetime.today() - timedelta(days=int(2))
checktime = checktime.timetuple()
...
filetimesecs = os.path.getmtime(webgatelogdir + '/' + fn)
file = webgatelogdir + '/' + fn
filetime = localtime(filetimesecs)
...
#else: time.sleep(60) # comment out time.sleep statement
Run Code Online (Sandbox Code Playgroud)
错误
checktime = datetime.today() - timedelta(days=int(2)) AttributeError: 'module' object has no attribute 'today'
最后,我尝试了这个:
import time
from datetime import *
...
checktime = datetime.today() - timedelta(days=int(2))
checktime = checktime.timetuple()
...
filetimesecs = os.path.getmtime(webgatelogdir + '/' + fn)
file = webgatelogdir + '/' + fn
filetime = localtime(filetimesecs)
...
#else: time.sleep(60) # comment out time.sleep statement
Run Code Online (Sandbox Code Playgroud)
错误:
checktime = datetime.today() - timedelta(days=int(2))
AttributeError: 'module' object has no attribute 'today'
所以我不确定如何让两个模块很好地发挥.或者我需要另一种方法来延迟脚本.
建议?或指出我犯的错误?
谢谢.
小智 17
您可以在导入时使用as.
import time as t
from datetime import datetime
...
t.sleep(2)
Run Code Online (Sandbox Code Playgroud)
不要使用from ... import *- 这是交互式使用的便利语法,并导致脚本混乱.
这是一个应该有效的版本:
import time
import datetime
...
checktime = datetime.datetime.today() - datetime.timedelta(days=int(2))
checktime = checktime.timetuple()
...
filetimesecs = os.path.getmtime(webgatelogdir + '/' + fn)
file = webgatelogdir + '/' + fn
filetime = time.localtime(filetimesecs)
...
#else: time.sleep(60) # comment out time.sleep statement
Run Code Online (Sandbox Code Playgroud)
使用时导入模块时import <modulename>,您当然需要为这些模块中的所有名称使用完全限定名称
切勿使用表单的导入,from x import *因为您不知道会得到什么。在这种情况下,第二次导入会清除第一次导入中的一些符号,因为它们具有相同的名称。
使用import x和限定您在该模块中使用的所有内容x.y,或者仅使用 导入选定的项目from x import y。