来自线程的 Python Subprocess.Popen
我正在尝试使用子进程模块和线程内的 Popen 启动“rsync”。 调用 rsync 后,我还需要读取输出。 我正在使用通信方法来读取输出。 当我不使用线程时,代码运行良好。 看起来,当我使用线程时,它会挂在通信调用上。 我注意到的另一件事是,当我设置 shell=False 时,在线程中运行时,我从通信中没有得到任何返回。
I'm trying to launch an 'rsync' using subprocess module and Popen inside of a thread. After I call the rsync I need to read the output as well. I'm using the communicate method to read the output. The code runs fine when I do not use a thread. It appears that when I use a thread it hangs on the communicate call. Another thing I've noticed is that when I set shell=False I get nothing back from the communicate when running in a thread.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您没有提供任何代码供我们查看,但这里有一个示例,其功能与您所描述的类似:
You didn't supply any code for us to look at, but here's a sample that does something similar to what you describe:
这是一个不使用线程的出色实现:
持续打印-subprocess-output-while-process-is-running< /a>
Here's a great implementation not using threads:
constantly-print-subprocess-output-while-process-is-running