[ python-Bugs-1736483 ] os.popen('yes | echo hello') stuck
SourceForge.net
noreply at sourceforge.net
Thu Jun 14 04:24:04 CEST 2007
Bugs item #1736483, was opened at 2007-06-13 09:41
Message generated for change (Comment added) made by ilgiz
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1736483&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Eric (cpegeric)
Assigned to: Nobody/Anonymous (nobody)
Summary: os.popen('yes | echo hello') stuck
Initial Comment:
after calling os.popen('yes | echo hello'), the process never returns.
----------------------------------------------------------------------
Comment By: Ilguiz Latypov (ilgiz)
Date: 2007-06-13 22:24
Message:
Logged In: YES
user_id=281701
Originator: NO
I've realized my suggestion was not precise. I meant asking to run the
argument to popen() rather than popen().
That is, I would run this from command line to see if there is an issue
with the shell:
$ yes | echo hello
----------------------------------------------------------------------
Comment By: Eric (cpegeric)
Date: 2007-06-13 21:28
Message:
Logged In: YES
user_id=1595194
Originator: YES
command line also get stuck. The OS is MacOSX. Python version 2.3.5.
Will it help update to new version?
I quited the program by Ctrl-C.
python -c 'import sys, os; sys.stdout.write(os.popen("yes | echo
hello").read())'
^CTraceback (most recent call last):
File "<string>", line 1, in ?
KeyboardInterrupt
% python -c 'import sys, os; sys.stdout.write(os.popen3("yes | echo
hello")[1].read())'
^CTraceback (most recent call last):
File "<string>", line 1, in ?
KeyboardInterrupt
----------------------------------------------------------------------
Comment By: Ilguiz Latypov (ilgiz)
Date: 2007-06-13 13:07
Message:
Logged In: YES
user_id=281701
Originator: NO
Could you try the same command from your shell?
I am guessing "yes" will write an error message about the broken pipe to
stderr.
$ python -c 'import sys, os; sys.stdout.write(os.popen("yes | echo
hello").read())'
yes: standard output: Broken pipe
yes: write error
hello
$ python -c 'import sys, os; sys.stdout.write(os.popen3("yes | echo
hello")[1].read())'
hello
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1736483&group_id=5470
More information about the Python-bugs-list
mailing list