Как передать строку в subprocess.Popen (используя аргумент stdin)?

Если я сделаю следующее:

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

Я получил:

Traceback (most recent call last):
  File "", 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 неКрякнуть достаточно близко к файловой утке, чтобы удовлетворить подпроцесс. Открыть. Как мне обойти это?

Ответы на вопрос(10)

Ваш ответ на вопрос