11
ฉันจะส่งผ่านสตริงไปยัง 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 "<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 นั้นไม่ได้อยู่ใกล้กับเป็ดพอที่จะให้เหมาะสมกับ subprocess.Popen ฉันจะแก้ไขสิ่งนี้ได้อย่างไร
280
python
subprocess
stdin