Python如何每xxx次读取txt文件并添加到多进程中,如果添加了新的文本

2024-04-27 04:40:45 发布

您现在位置:Python中文网/ 问答频道 /正文

所以基本上我在尝试做一些我不确定是否可能做或不可能做的事情。在

我的想法是我使用一个多进程,这意味着它在后台为每一个“任务”运行独立的进程。类似于:

names.txt

Oskar Baldwin
Khalil Whittle
Jevon Burn
Paddy Wilkinson
Jocelyn Weiss
Ishaq Glenn
Zahraa Macfarlane
Marianna Roy
Humera Schultz
Luther Pugh

^{pr2}$

因此,输出的结果是,每个进程都会为自己处理每个名称,因此进程1将使用txt文件中的第一行,第二个进程将使用第二个名称,依此类推。在

我的问题是我怎样才能继续前进,并且能够检查名称.txtxxx次,然后检查如果有新名称添加,则将其添加到新进程中,如果没有新名称,则只需继续该进程并再次睡眠,直到另一个进程正在运行在后台运行?在


Tags: txt名称names进程事情后台oskarbaldwin
1条回答
网友
1楼 · 发布于 2024-04-27 04:40:45

又快又脏的方法。我没有研究是否有一种方法可以查询作业列表中某个项目的“args”属性。在

请注意,它不能正确处理在进程完成执行后添加重复名称的情况。你必须想出一种方法,从“已用的名字”列表中删除已完成的进程。在

jobs = []
used_names = []
for i in range(0, 10): # repeat as often as necessary
    try:
        for names in [line.rstrip('\n') for line in open('names.txt')]:
            if names not in used_names: # dont spawn new process if one already exists
                p = multiprocessing.dummy.Process(target=main, args=(names,))
                jobs.append(p)
                used_names.append(p)
                p.start()
        time.sleep(0.1) # arbitrary sleep

    except KeyboardInterrupt:
        print('Keyboard - Interrupted')
        sys.exit(0)

相关问题 更多 >