2011-09-28 104 views
1

我想批量重命名svn中的一些文件。我遇到了一些文件中有空间的问题。当我尝试运行我得到这个错误:SVN批量重命名空白问题

svn: Cannot copy path '00009.png' into its own child '00009.png' 

我的代码是:

import subprocess.call 
call("svn rename " + "test 00009.png" + " test1 00009.png") 

看起来像它的分裂的空白。有任何想法吗?

回答

1

这应该工作:

call("svn rename " + "\"test 00009.png\"" + " \"test1 00009.png\"") 

基本上围绕所有带引号的,它可以方便的与做的路径这样说

"\"%s\"" % file 
2

反斜杠会转义您的空格。

所以:

import subprocess.call 
call("svn rename " + r"test\ 00009.png" + r" test1\ 00009.png") 

r''语法,这意味着Python应该从字面上对待\ S,而不是本身逃逸。它通过svn传递给他们,在那里他们被视为逃脱。

+0

基本上我需要一种方法为str代替空格?因为我正在对这100个文件进行批处理。 – shawn

+0

是的。除了空格还有空格吗?因为如果没有,你可以做'filename = filename.replace('',r'\')'。如果是的话,一个正则表达式可以工作。除非我错过了一些东西。 – Dave