[Python-de] popen deadlock

Siggy Brentrup bsb at winnegan.de
Wed Aug 1 11:44:02 EDT 2001


Carl Im <carlim at gmx.de> writes:


[...]

> a,b,c = os.popen3(path)
>             while 1:
>                     lines = b.readline()
>                     out += lines			# hier hängt es wohl irgendwo 
>                     if not lines: break
> .....
> <path> ist ein UNIX oder DOS Script.

Ohne Information ueber <path> kann man das Problem wohl kaum loesen.
Bist Du sicher, dass z.B. <path> nicht auf input wartet?

z.B.

>>> import os
>>> a,b,c = os.popen3('cat')
>>> a
<open file '(fdopen)', mode 'w' at 0x8129b60>
>>> b
<open file '(fdopen)', mode 'r' at 0x812ad40>
>>> c
<open file '(fdopen)', mode 'r' at 0x81290e0>
>>> b.read() # blockiert, deshalb C-c
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
KeyboardInterrupt
>>> a.close()
>>> b.read()
''
>>> 

[ bloedsinnege provider-werbung geloescht ]

HTH
  Siggy

-- 
Siggy Brentrup - bsb at winnegan.de - http://www.winnegan.de/
****** ceterum censeo javascriptum esse restrictam *******



More information about the Python-de mailing list