2011-09-28 112 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