我想从Python中安排一个特定的任务。我从文件中读取所需的开始时间,并反复将其与当前时间进行比较。代码如下:
from datetime import datetime
import sys
current_time = datetime.now()
f = open("starttime.txt", "r")
start_time = f.read()
print(current_time)
print(start_time)
while True:
if str(current_time) == str(start_time):
print("the times match")
sys.exit()
else:
print('not yet')
print
工作正常,但当开始时间到达时,程序会继续打印“not yet”。有什么办法解决这个问题吗
编辑:我尝试了Prune在“答案”部分中所说的建议,但在尝试将str对象转换为datetime对象时出错,表示格式不正确。以下是代码行:
start_time = datetime.strptime("2018-9-12 20:00:00.000000", '%Y, %m, %d, %H, %M, %S, %f')
编辑2:我的代码终于工作了!谢谢你,梅干
你有两个问题:
current_time
失败:在开始程序时它仍然被卡住李>now
以微秒为单位返回时间,所以在循环中不太可能找到确切的时间。相反,我建议你用一个不等式李>例如:
。。。已经将
start_time
转换为datetime
对象让那三个问题。您还没有为您输入的字符串正确设置
datetime
转换的格式:您的字符串中有标点符号,在转换格式中没有表示。试试这个:结果:
作为输入的文件将在文件末尾包含EOL(行尾)字符。首先尝试删除这些字符(\n\r等)
相关问题 更多 >
编程相关推荐