将字符串作为系统参数变量传递给python

时间:2016-12-16 18:15:16

标签: python

我正在尝试将一个字符串作为System Argument变量传递给python中的gnuplot。我之前已经做了好几次,但令人惊讶的是这次它不起作用。我使用了这个主题How to pass command line argument to gnuplot?,但我没有工作

import subprocess
ii=2
while ii<5:
    if (ii==2):
            name='rectangular'
            a="gnuplot -e 'name="+name+ "' graph3.gp"
    if (ii==3):
            name='trapezoidal'
    if (ii==4):
            name='simpson'

    a="gnuplot -e 'name="+str(simpson)+ "' graph3.gp"
    subprocess.call(a, shell='true')
    ii=ii+1

我总是收到相同的错误消息:

line 0: undefined variable: rectangular

line 0: undefined variable: trapezoidal

line 0: undefined variable: simpson

2 个答案:

答案 0 :(得分:0)

夫妻俩:

  1. call接受args列表
  2. shell采用布尔值(True不是&#39; true&#39;)
  3. 你可能有类型试图施放&#34; simpson&#34;作为字符串而不是名字?
  4. 可能是这样的:

    subprocess.call(a.split(), shell=True) # or
    subprocess.call(["gnuplot", "-e", "'name={}".format(str(name)), "graph3.gp"], shell=True)
    

答案 1 :(得分:0)

好的,我知道如何做到这一点。一切都必须以字符串形式传递:

import subprocess
ii=2
while ii<5:
    if (ii==2):
             name='name="rectangular"'
    if (ii==3):
            name='name="trapezoidal"'
    if (ii==4):
            name='name="simpson"'
    a="gnuplot -e {0} graph3.gp".format(name)
    subprocess.call(a.split(), shell=False)
    ii=ii+1