Come faccio a passare una stringa in subprocess.Popen (usando l’argomento stdin)?

| | | |

Se faccio quanto segue:

importa il sottoprocesso da cStringIO import StringIO subprocess.Popen(["grep","f"],stdout=subprocess.PIPE,stdin=StringIO(" uno due tre quattro cinque sei ")).communicate()[0] 

Ottengo:

Traceback (ultima chiamata più recente): File " <stdin>", riga 1, in ? File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", riga 533, in __init__ (p2cread, p2cwrite, File "/build/toolchain/mac32/python-2.4.3 /lib/python2.4/subprocess.py", riga 830, in _get_handles p2cread = stdin.fileno() AttributeError: l'oggetto "cStringIO.StringI" non ha attributo "fileno" 

Apparentemente un oggetto cStringIO.StringIO non si avvicina abbastanza a un file duck per adattarsi a subprocess.Popen. Come posso aggirare questo problema?