我一直试图打破一个循环,该循环旨在在某个位置查找文件。我的目的是让我的脚本来查找该文件在一定时间内再破该文件是否被发现或没有,但我不能让任何想法。
我怎样才能使脚本等待一定的时间再破当时间到了?的
这是我目前的脚本:
import os
import time
file_path = r"C:\Users\WCS\Desktop\item.txt"
time_limit = 5
while not os.path.exists(file_path):
time.sleep(1)
#is there any logic I can apply here to make the following line valid
# if waiting_time>=time_limit:break
print("Time's up")
答案 0 :(得分:1)
for i in range(len(replaceVals)):
origStr = origStr.replace('?', replaceVals[i], 1)
答案 1 :(得分:1)
通过使用actual time
函数执行start time
time.time()
来计算经过时间,并分配一个变量(此代码中的file_exists
)将被修改并检查文件是否存在并将其用于循环。
如下:
import os
import time
file_path = r"C:\Users\WCS\Desktop\item.txt"
time_limit = 5
start = time.time()
file_exists = os.path.exists(file_path)
while not file_exists:
time.sleep(1)
file_exists = os.path.exists(file_path)
elapsed = time.time() - start
if elapsed >= time_limit:
break
else:
print("File exist.")
print(elapsed)
print("Time's up")
答案 2 :(得分:0)
#print(d['result'][0]['buy'])
答案 3 :(得分:0)
正如roganjosh所评论的那样,如果使用时间戳记会更简单。我在下面添加了相关代码:
import os
import time
from datetime import datetime, timedelta
file_path = r"C:\Users\WCS\Desktop\item.txt"
time_limit = datetime.now() + timedelta(seconds=5)
present = datetime.now()
while (not os.path.exists(path)) and present < time_limit:
present = datetime.now()
if present >= time_limit:
print("Time's up")
break
time.sleep(1)
答案 4 :(得分:0)
这是使用threading.Timer()
类的方法。可以将它们配置为延迟指定的时间,并根据您的选择选择呼叫。
import os
from threading import Timer
import time
file_path = r"C:\Users\WCS\Desktop\item.txt"
# Timer callback function.
def timeout():
global time_ran_out
time_ran_out = True
time_limit = 5
time_ran_out = False # Define variable the callback function modifies.
timer = Timer(time_limit, timeout) # Create a timer thread object.
timer.start() # Start the background timer.
while not os.path.exists(file_path):
time.sleep(1)
if time_ran_out:
print('Times up!')
break
print("Done")
答案 5 :(得分:0)
要检查某个位置的文件是否可用,可以尝试以下操作。找到文件后,脚本将立即中断,否则将等待5秒钟,直到文件可用为止。
import os
import time
file_path = r"C:\Users\WCS\Desktop\item.txt"
time_to_wait = 5
time_counter = 0
while not os.path.exists(file_path):
time.sleep(1)
time_counter += 1
if time_counter > time_to_wait:break
print("done")