如何 运行 多次倒计时
How to run multiple countdowns
我在 python 中使用多处理,但我不知道如何启动线程并继续代码。
该代码应检查是否已将新项目添加到记事本文件中。如果是,则应等待 2 分钟,然后将其删除。我希望这个删除过程是独立的,因为在这 2 分钟内,可以将一个以上的项目添加到记事本文件中(这是由我已经编写的另一个程序完成的)。基本上,对于添加到记事本文件的每个新项目,我想启动一个新线程,该线程将在 2 分钟后删除该项目。
这是我的资料:
import time
import threading
a_file = open("file.txt", "r")
lines = a_file.readlines()
a_file.close()
a=len(lines)#the initial number of lines
n=0
def delete(a):#the function which deletes the new item
a_file = open("file.txt", "r")
lines = a_file.readlines()
a_file.close()
del lines[a-1]# becasue of indexing it should delete the a-1 element in the list
new_file = open("file.txt", "w+")
for line in lines:
new_file.write(line)
new_file.close()
a=a-1#decreases a so that the function isn't called again
while n==0:
time.sleep(7)
a_file = open("file.txt", "r")
lines = a_file.readlines()
a_file.close()
b=len(lines)#the new number of lines
if b>a:
a=b
t1=threading.Thread(target=delete(a))#the thread
如有任何帮助,我们将不胜感激!
为什么不使用 Timer
而使用 Thread
?
试试运行这个,看看效果如何:
from threading import Timer
def spong(what):
print(what)
Timer(4.0, spong, args=("four point oh",)).start()
Timer(6.0, spong, args=("six point oh",)).start()
Timer(2.0, spong, args=("two point oh",)).start()
print("And, they're off!")
我在 python 中使用多处理,但我不知道如何启动线程并继续代码。
该代码应检查是否已将新项目添加到记事本文件中。如果是,则应等待 2 分钟,然后将其删除。我希望这个删除过程是独立的,因为在这 2 分钟内,可以将一个以上的项目添加到记事本文件中(这是由我已经编写的另一个程序完成的)。基本上,对于添加到记事本文件的每个新项目,我想启动一个新线程,该线程将在 2 分钟后删除该项目。
这是我的资料:
import time
import threading
a_file = open("file.txt", "r")
lines = a_file.readlines()
a_file.close()
a=len(lines)#the initial number of lines
n=0
def delete(a):#the function which deletes the new item
a_file = open("file.txt", "r")
lines = a_file.readlines()
a_file.close()
del lines[a-1]# becasue of indexing it should delete the a-1 element in the list
new_file = open("file.txt", "w+")
for line in lines:
new_file.write(line)
new_file.close()
a=a-1#decreases a so that the function isn't called again
while n==0:
time.sleep(7)
a_file = open("file.txt", "r")
lines = a_file.readlines()
a_file.close()
b=len(lines)#the new number of lines
if b>a:
a=b
t1=threading.Thread(target=delete(a))#the thread
如有任何帮助,我们将不胜感激!
为什么不使用 Timer
而使用 Thread
?
试试运行这个,看看效果如何:
from threading import Timer
def spong(what):
print(what)
Timer(4.0, spong, args=("four point oh",)).start()
Timer(6.0, spong, args=("six point oh",)).start()
Timer(2.0, spong, args=("two point oh",)).start()
print("And, they're off!")