【问题标题】:SVN Batch Rename Whitespace IssueSVN批量重命名空格问题
【发布时间】:2011-09-28 22:28:21
【问题描述】:

我正在尝试批量重命名 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")

看起来它在空白处分裂。有什么想法吗?

【问题讨论】:

    标签: python svn syntax call


    【解决方案1】:

    反斜杠转义你的空格。

    所以:

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

    r'' 语法意味着 python 应该按字面意思对待\s,而不是它们本身的转义。它通过 svn 传递它们,它们被视为逃逸。

    【讨论】:

    • 基本上我需要一种方法来替换空格?因为我要对 100 个文件进行批处理。
    • 是的。除了空格还有空格吗?因为如果不是你可以做filename = filename.replace(' ', r'\ ')。如果是这样,正则表达式会起作用。除非我错过了什么。
    【解决方案2】:

    这应该可行:

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

    基本上所有路径都用引号括起来,你可以很容易地用像

    这样的话来做到这一点
    "\"%s\"" % file
    

    【讨论】:

      猜你喜欢
      • 2014-02-06
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      • 2012-03-15
      • 2021-03-06
      • 2011-04-17
      • 2014-09-10
      • 1970-01-01
      相关资源
      最近更新 更多