【问题标题】:input variable into python call subprocess输入变量到python调用子进程
【发布时间】:2014-09-09 20:11:52
【问题描述】:

我有一个小的python sn-p,它调用一个更大的程序(我没有写更大的程序)。

call(['function1', file1,  file2,  'data.labels=abc, xyz'])

以上工作。

input ='abc, xyz'

现在我想输入“abc,xyz”作为保存这个值的变量

call(['function1', file1,  file2,  'data.labels=input'])

但它不起作用。

如何将变量值传递给调用子进程中的变量 data.labels。

【问题讨论】:

  • 一个更具体的问题可能是,“我如何获取字符串'abc, xyz' 并以某种方式获取字符串'data.labels=abc, xyz'”?答案根本不是针对call,只是普通的字符串操作。
  • @Kevin:它特定于 Windows 上的subprocess.call(),其中CreateProcess() 用于启动接受单个字符串作为命令的子进程,请参阅subprocess.list2cmdline()。换句话说,您不能在 Windows 上传递任意未转义的值,因为 list2cmdline() 并未涵盖所有可能的情况。

标签: python subprocess call


【解决方案1】:
call(['function1', file1,  file2,  'data.labels=%s' % input])

【讨论】:

【解决方案2】:

或者

call(['function1', file1,  file2,  'data.labels=' + input)

如果由于某种原因,输入不是字符串。

call(['function1', file1,  file2,  'data.labels=' + str(input) )

【讨论】:

    【解决方案3】:

    另一种方法:

    call(['function1', file1,  file2,  'data.labels={0}'.format(input)])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-12
      • 2014-01-24
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 2016-02-26
      • 1970-01-01
      相关资源
      最近更新 更多