在popen中添加参数的路径

时间:2016-10-19 10:29:53

标签: python linux python-2.7

我想通过Python执行Linux命令。这适用于终端:

/usr/bin/myprogram --path "/home/myuser"

我试过这个:

path = "/home/myuser"
args = ['/usr/bin/myprogram', '--path ' + path]
proc = subprocess.Popen(args)

而且:

path = "/home/myuser"
args = ['/usr/bin/myprogram', '--path "' + path + '"']
proc = subprocess.Popen(args)

但是myprogram不接受路径格式化。我知道不执行shell时路径的行为会有所不同,但我无法使其工作。我也试过单引用路径而不是双引用它。对于也适用于Windows的解决方案的奖励积分(显然具有不同的程序路径)。

编辑:对不起,是从内存中写出这个并使用反斜杠而不是正斜杠。实际的代码确实使用了(正确的)正斜杠。

2 个答案:

答案 0 :(得分:0)

这里有一些尝试:

Subject:

注意正斜杠(" /")。根据我的阅读,即使在Windows上运行,Python也不喜欢反斜杠(" \")(我自己从未在Windows上使用它)。

答案 1 :(得分:-1)

问题来自您的字符串文字\b。根据{{​​3}},\x08r替换,因此找不到您的可执行文件。

在字符串文字前面点r'\usr\bin\myprogram'(例如\\),或使用'\\usr\\bin\\myprogram'代表反斜杠(即{{1}})。

相关问题