Raising exception on STDIN read

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Wed Feb 27 15:26:29 EST 2008


En Wed, 27 Feb 2008 15:06:36 -0200, Ian Clark <iclark at mail.ewu.edu>  
escribi�:

> On 2008-02-27, Michael Goerz <newsgroup898sfie at 8439.e4ward.com> wrote:
>> Hi,
>>
>> I would like to raise an exception any time a subprocess tries to read
>> from STDIN:
>>
>> latexprocess = subprocess.Popen( \
>>          'pdflatex' + " " \
>>           + 'test' + " 2>&1", \
>>          shell=True, \
>>          cwd=os.getcwd(), \
>>          env=os.environ, \
>>          stdin=StdinCatcher() # any ideas here?
>>      )
>>
>> An exception should be raised whenever the pdflatex process
>> reads from STDIN... and I have no idea how to do it. Any suggestions?

> How about with a file-like object? I haven't tested this with subprocess
> so you might want to read the manual on files if it doesn't work[1].

Won't work for an external process, as pdflatex (and the OS) knows nothing  
about Python objects. The arguments to subprocess.Popen must be actual  
files having real OS file descriptors.

Try with stdin=open("/dev/full") or stdin=open("/dev/null")

-- 
Gabriel Genellina




More information about the Python-list mailing list