How to write a simple shell loop in python?
Steve Holden
steve at holdenweb.com
Wed Jan 21 08:37:25 EST 2009
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()
Just replace the lines above with
input = raw_input("$ ")
and you'll be fine. The "," in the print statement causes the
interpreter to set a flag to emit a space before the next output unless
it has just printed a newline. The "newline", of course, is provided by
the input, so the next print emits a space since it *hasn't* just
emitted a newline.
regards
Steve
> ... 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
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
More information about the Python-list
mailing list