gpt4 book ai didi

python-2.7 - 子进程中的 Python 用户输入

转载 作者:行者123 更新时间:2023-12-04 03:02:44 25 4
gpt4 key购买 nike

我正在尝试创建一个可以通过 raw_input() 或 input() 获取输入的子进程,但是在请求输入时我遇到了 end of liner error EOFError: EOF

我这样做是为了在 python 中试验多处理,我记得这很容易在 C 中工作。是否有一种解决方法,而不使用从主进程到它的子进程的管道或队列?我真的很想让 child 处理用户输入。

def child():
print 'test'
message = raw_input() #this is where this process fails
print message

def main():
p = Process(target = child)
p.start()
p.join()

if __name__ == '__main__':
main()

我写了一些测试代码,希望能展示我想要实现的目标。

最佳答案

我的回答来自这里:Is there any way to pass 'stdin' as an argument to another process in python?

我已经修改了你的例子,它似乎工作了:

from multiprocessing.process import Process
import sys
import os

def child(newstdin):
sys.stdin = newstdin
print 'test'
message = raw_input() #this is where this process doesn't fail anymore
print message

def main():
newstdin = os.fdopen(os.dup(sys.stdin.fileno()))
p = Process(target = child, args=(newstdin,))
p.start()
p.join()

if __name__ == '__main__':
main()

关于python-2.7 - 子进程中的 Python 用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13835250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com