python popen 参数_python:为Popen命令传递多个参数

我花了几个小时试图弄清楚如何将多个参数传递给python脚本,该脚本应该由subprocess.Popen执行而没有任何运气.

脚本:

command = ['/usr/bin/python', '/tmp/script.py mcl=NULL mtp=data mnm=DS4INST \

mno=NULL mse=NULL mce=cll01']

result = subprocess.Popen(command, stdout = subprocess.PIPE, \

stderr = subprocess.PIPE)

out, err = result.communicate()

print out, err

我收到以下错误消息:

python: can't open file '/tmp/script.py mcl=NULL mtp=data mnm=DS4INST mno=NULL \

mse=NULL mce=cll01': [Errno 2] No such file or directory

但是,当我直接从shell执行脚本时

/usr/bin/python /tmp/script.py mcl=NULL mtp=data mnm=DS4INST mno=NULL \

mse=NULL mce=cll01

我收到所需的输出并且未生成错误消息.

请指教.

解决方法:

试试这个:

command = ['/usr/bin/python', '/tmp/script.py', 'mcl=NULL', 'mtp=data', 'mnm=DS4INST', 'mno=NULL' 'mse=NULL', 'mce=cll01']

在您的代码中,命令的第二个元素被视为一个单独的参数,并解释为:

/usr/bin/python "/tmp/script.py mcl=NULL mtp=data mnm=DS4INST mno=NULL mse=NULL mce=cll01"

所以就像一个带空格的长文件名.

您必须将参数拆分为命令列表的单独元素.

标签:python,parameter-passing,popen

来源: https://codeday.me/bug/20190530/1185085.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值