Dietrich Bollmann wrote:
Hi,
I am trying to write a simple shell loop in Python.
My simple approach works fine - but the first output line after entering
something is always indented by one blank.
Is there any logic explanation for this?
How can I get rid of the blank?
Is there a smarter way to write a simple shell loop which would work
better?
Thanks, Dietrich
Here my approach:
$ python
Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import sys
while (1):
... print "$ ",
... input = sys.stdin.readline()
... input = input.strip()
... print input
... print input
... print input
...
$ one
one
one
one
$ two
two
two
two
$ three
three
three
three
$
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
KeyboardInterrupt
Strange. I don't have an explanation, but experiment shows that if you
change print "$ ", to print "$ " (that is, leave out the comma) then the
leading blank is not printed. This behavior doesn't depend on the
"print input" statement's being in a loop.
By the way, you don't need parens around the loop guard in python:
while 1: (or as I prefer, while True:) work just fine.
Saul
--
http://mail.python.org/mailman/listinfo/python-list