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

标签 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])

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

如果我改变:

status, output = getStatusOutput(svn_cmd[0][0])

status, output = getStatusOutput(svn_cmd[0])

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

最佳答案

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

p = subprocess.Popen([cmd],stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)

[cmd] 应该不带 [ ]。否则,元素将被视为数组而不是字符串。

希望这会对某人有所帮助。

关于python - 文件名、目录名或卷标语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23623947/

相关文章:

python - 在浏览器上启动媒体然后退出

python - Pandas DataFrame 上的特定组计算

c# - 不能将基本类型的变量作为输出参数传递?

c# - 从类返回多个值到方法

c# - 为什么迭代器方法不能采用 'ref' 或 'out' 参数?

python - Pandas: Merge array is too big, large, 如何分段合并?

python - pd.read_csv 无法加载 csv 文件的第一列,并且在 Excel 中打开和保存时文件大小发生变化

git - Svn 或 Git 客户端(或插件)查找丢失或损坏的文件

svn - 在您已经将提交的文件提交到 Svn 中的存储库之后将它们组合在一起(作为单个提交)?

svn - git svn : Delta source ended unexpectedly