文件名、目录名或卷标语法不正确

Pio*_*trK 1 python svn out

我有一个简单的 python (2.7) 脚本,应该执行一些 svn 命令:

def getStatusOutput(cmd):
    print cmd
    p = subprocess.Popen([cmd],stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    output, status = p.communicate()
    return status, output

svn_cmd = [
        ["svn co " + FIRMWARE_URL + "/branches/interfaces/ interfaces --depth empty", ""],
        ["svn up interfaces/actual_ver.txt", "  Getting current version of a branch "]
        ]
status, output = getStatusOutput(svn_cmd[0][0])
Run Code Online (Sandbox Code Playgroud)

不幸的是,当它在我朋友的机器上运行时,它失败并出现错误:“文件名、目录名或卷标语法不正确。” 当我在我的机器上运行它时,它工作正常。

如果我改变:

status, output = getStatusOutput(svn_cmd[0][0])
Run Code Online (Sandbox Code Playgroud)

status, output = getStatusOutput(svn_cmd[0])
Run Code Online (Sandbox Code Playgroud)

然后它将成功执行数组的第一个元素(命令),但第二个元素(注释)将失败。有谁知道可能出了什么问题吗?

Pio*_*trK 5

解决方案比我想象的要容易。问题就在这里:

p = subprocess.Popen([cmd],stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
Run Code Online (Sandbox Code Playgroud)

确切地说[cmd]应该没有[]。否则,元素将被视为数组而不是字符串。

希望这对某人有帮助。