finalresult = subprocess.Popen(['sshpass','-p',password,'rsync','-avz','--info=progress2','hostname:/filename','/home/nfs/django/user'],stdout=subprocess.PIPE).communicate()[0]
当我在终端中运行程序时,它不会向我显示进度,但是如果我独立使用rsync实用程序它会显示进度.我希望在终端中查看进度并解析或获取进度百分比以便稍后使用它来实时向用户显示进度条.谢谢!
编辑:
这是我到目前为止所尝试的:
上面的代码将命令处理存储在finalresult变量中.我试图在django模板中打印finalresult变量,但它不会返回任何内容.
def wait(self): """Wait for child process to terminate. Returns returncode attribute.""" if self.returncode is None: # Try calling a function os.waitpID(self.pID,0) # Ignore Interrupted System Call (errno.EINTR) errors pID,sts = _eintr_retry_call(os.waitpID,self.pID,0) self._handle_exitstatus(sts) return self.returncode
在Unix上,os.waitpID()函数调用意味着:等待进程ID pID给出的子进程的完成,并返回包含其进程ID和退出状态指示的元组.因此,您必须等到子进程完成.
最接近的替代方案是pexpect,但它仍然不会进行进度条分析.一个可能的@R_419_6954@案是破解rsync并修补其进度输出,以便pexpect可以使用它.
总结以上是内存溢出为你收集整理的如何在Python中显示和解析rsync进度?全部内容,希望文章能够帮你解决如何在Python中显示和解析rsync进度?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)