所以我一直在尝试使用for循环和线程。我的想法是要有一个names.txt文件,在程序运行时可以在其中添加名称。在文本文件中是否找到新名称。它应该将其添加为新线程并运行脚本。
我在这里编写了一个如下脚本:
def testscript(thread):
print(thread)
def script():
old_list = []
old_names_list = []
while True:
new_names_list = [line.rstrip('\n') for line in open('names.txt')]
for new_thread in get_random_names(): #A function that contians 100 random names
if not new_names_list == old_names_list:
for i in new_names_list:
if not i in old_names_list:
print(i)
old_names_list = new_names_list
if new_thread not in old_list: #If the names are not added in old_list. start new thread.
threading.Thread(target=testscript, args=(new_thread,)).start()
old_list.append(new_thread)
else:
randomtime = random.randint(1, 3)
time.sleep(randomtime)
我现在的问题是,我设法弄清楚了何时添加名称,它将使用以下代码将其打印出来:
if not new_names_list == old_names_list:
for i in new_names_list:
if not i in old_names_list:
print(i)
old_names_list = new_names_list
问题是我还需要在下面使用此代码,因为我还想打印出所有名称。
if new_thread not in old_list:
threading.Thread(target=testscript, args=(new_thread,)).start()
old_list.append(new_thread)
我的想法是首先打印出所有名称,如果添加了新名称,则应为其添加一个新线程,并将名称保留在类似于args中threading.Thread(target=testscript, args=(new_thread, i)).start()
#i的args中。
我的问题是:我如何能够为添加到old_list的所有新项目发送一个线程,以及仅发送names.txt中的名称的线程?