我有一个用Python运行的Linux命令。你知道吗
roc = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', '--info=progress2', hostname, '/home/zurelsoft/test'],
stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
print roc
这将仅在命令执行完成时打印命令处理。但是,我需要命令的输出,因为它正在发生和停止时,命令被完全执行。如何做到这一点?你知道吗
如果您通过调用命令行,它应该可以工作子流程.Popen就像你做的那样,但是把一根管子传给系统标准输出通过改变:
将管道传递给打开的可写文件对象将保存输出。你知道吗
您可以签出Select和Select Example
Python’s select()
函数是底层操作系统实现的直接接口。它监视套接字、打开的文件和管道(使用fileno()方法返回有效的文件描述符的任何内容),直到它们变得可读写,或者发生通信错误。你知道吗select()
使得同时监视多个连接更容易,并且比使用套接字超时在Python中编写轮询循环更高效,因为监视发生在操作系统网络层,而不是解释器。你知道吗如果这对你没有帮助,也可以看看
Persistent python subprocess
How can I read all availably data from subprocess.Popen.stdout (non blocking)?
相关问题 更多 >
编程相关推荐