如何解决du:无法在python中访问错误?

时间:2015-09-04 17:47:05

标签: python python-3.x

我正在使用rsync将文件从一个服务器传输到另一个服务器。现在我必须检查目录的大小并比较size.If目录的大小是相同的,然后rsync成功。我尝试这样做,但在路径中找到一些错误“du:无法访问”。任何人都可以告诉我该怎么做。谢谢。

以下是我的代码:

path = '/mnt/rsyncap/Monte Carlo'
size_cmd = 'ssh -l root -A '+ rh +' -i /Users/macbookpro/Development/serverkey/id_rsa  du -sh %s' % path
Size = subprocess.Popen(size_cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,shell= True).communicate()[0]

在上面的代码中你可以看到路径。在“Monte Carlo”之间有一个空格,因为它显示了du -sh line中的错误。所以如何处理目录名之间的空间并获取大小。如果目录名中没有空格,那么它可以正常工作。

输出:

du: cannot access `/mnt/rsyncap/Monte': No such file or directory
du: cannot access `Carlo': No such file or directory

如果有人对此有任何想法,请帮助我。

2 个答案:

答案 0 :(得分:1)

Pass a list of arguments,而不是字符串,并正确地逃避你的道路。

self

答案 1 :(得分:0)

试试,path = '/mnt/rsyncap/Monte\ Carlo'