传递数据给subprocess.check_output函数。

11 浏览
0 Comments

传递数据给subprocess.check_output函数。

我想调用一个脚本,将字符串的内容通过stdin传递给它,并获取它的stdout。

我不想触碰实际的文件系统,所以无法为它创建真正的临时文件。

使用subprocess.check_output,我可以获取脚本写入的任何内容;但是如何将输入字符串传递给它的stdin呢?

subprocess.check_output([script_name,"-"],stdin="this is some input")
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/lib/python2.7/subprocess.py", line 537, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 672, in __init__
    errread, errwrite) = self._get_handles(stdin, stdout, stderr)
  File "/usr/lib/python2.7/subprocess.py", line 1043, in _get_handles
    p2cread = stdin.fileno()
AttributeError: 'str' object has no attribute 'fileno'

0