shell脚本和python脚本如何传参数_从Shell脚本向Python传递参数

我写了一个小

shell脚本,看起来像这样:

cd models/syntaxnet

var1=$(jq --raw-output '.["avl_text"]' | syntaxnet/demo.sh)

echo $var1

python /home/sree/python_code1.py $var1

我的python_code1.py看起来像这样:

import sys

data = sys.argv[1]

print "In python code"

print data

print type(data)

现在,我的shell脚本中echo $var1的输出正是我想要看到的:

1检查_ VERB VB _​​ 0 ROOT _ _ 2 out _ PRT RP _ 1 prt _ _ 3 this _ DET DT _ 4 det _ _ 4 video _ NOUN NN _ 1 dobj _ _ 5 about _ ADP IN _ 4 prep _ _ 6西北_NUNN NNP _ 7 nn _ _ 7阿肯色州_NUNN NNP _ 5 pobj _ _ 8 – _. ,_ 7 punct _ _ 9 https _ X ADD _ 7 appos _ _

但是python代码中的打印数据输出只是1.即参数的第一个字母.

为什么会这样?我想将整个字符串传递给python代码.

最佳答案 如果参数和参数之间有空格不在引号中,则python会将其视为两个不同的参数.

这就是为什么python代码中的打印数据输出只有1.

检查以下输出.

[root@dsp-centos ~]# python dsp.py Dinesh Pundkar

In python code

Dinesh

[root@dsp-centos ~]# python dsp.py "Dinesh Pundkar"

In python code

Dinesh Pundkar

[root@dsp-centos ~]#

因此,在shell脚本中,将$var1放在引号中.

shell脚本的内容(a.sh):

var1="Dinesh Pundkar"

python dsp.py "$var1"

python代码的内容(dsp.py):

import sys

data = sys.argv[1]

print "In python code"

print data

输出:

[root@dsp-centos ~]# sh a.sh

In python code

Dinesh Pundkar

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值