非阻塞subprocess.call - 重访

时间:2015-10-06 23:16:14

标签: python subprocess nonblocking

我发现这个帖子已经超过2年了。我想问一个新问题,以便得到更多的关注

Non blocking subprocess.call

我的问题:

我和@DavidJB的情况相同,正如他在之前的帖子中的一篇评论中描述的那样

  

谢谢,这似乎有效,但是当我在slave.py中包含一个While循环时,它似乎卡住了并​​且没有在循环中执行任何操作(即使使用timer.sleep()函数..? - DavidJB Apr 17& #39; 13时23:59

有人对此有任何更新吗?

我希望具有while循环的子(slave.py)继续运行,而父(main.py)不等待子进程结束。家长应该继续工作。

这就是我的主要和孩子的样子。

main.py

...
proc = Popen('child.py', stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
out, err = proc.communicate()
...

总的来说,我想抛弃child.py并在产生它之后去做其他事情

child.py

while True:
    file = open( '/mnt/flash/child.txt', 'aw' )
    file.write( datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "\t\topened the file now!!\thi\n"  )
    time.sleep(5)
    ...
    <break>
file.close()

孩子一旦开始,就会写入一个文件,当前时间每5秒钟,除非某些事件将其从无限循环中分离出来

1 个答案:

答案 0 :(得分:-2)

如果你去执行其他python脚本,那么试试这个

dict_users = Counter()
largo = len(wut)
for user in wut:
    count = 0
    for line in lines:
        if user in line:
            count += 1
    dict_users[user] = count