Python-如何将字符串传递到子进程.Popen(使用stdin参数)?

Python-如何将字符串传递到子进程.Popen(使用stdin参数)?

如果我这样做的话:

import subprocessfrom cStringIO import StringIOsubprocess.Popen(['grep','f'],
stdout=subprocess.PIPE,stdin=StringIO('one\ntwo\nthree\nfour\nfive\nsix\n')).communicate()[0]

我得到:

Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 533, in __init__    (p2cread, p2cwrite,
  File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 830, in _get_handles
    p2cread = stdin.fileno()AttributeError: 'cStringIO.StringI' object has no attribute 'fileno'

显然,cStringIO.StringIO对象与文件鸭子的作用不够接近,无法适应子进程。我该怎么处理这件事?


守候你守候我
浏览 676回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python