Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: How to write a simple shell loop in python?

Reply
Thread Tools

Re: How to write a simple shell loop in python?

 
 
Dietrich Bollmann
Guest
Posts: n/a
 
      01-23-2009
[Sorry for top posting - I had a HD problem and lost the original mails]

Hi Saul, Steve, Ben, James, Scott David and James!

Thank you all very much for your help! I finally got rid of the extra
space and also understood why the space was printed

After using Steve's 'input = raw_input("$ ")' solution for a while -
it does exactly what I want and is the fastest fix also - I wanted
command line editing and switched to the cmd.Cmd module.

Special thanks to James Mills for writing his own solution!

I would like to use your component - but cmd.Cmd is just perfect
for my purpose and I want to run my program without the need to
install any new module (I am writing the program for somebody else).

I got interested in circuits though - but the homepage
http://trac.softcircuit.com.au/circuits/ (currently?) seems not to be
available.

Thanks again for your answers

Dietrich


PS: There is a little tutorial for cmd.Cmd here:

- http://www.doughellmann.com/PyMOTW/cmd/index.html

The documentation is here:

- http://docs.python.org/library/cmd.html

(got it from Ben Finney's post)


On Wed, 2009-01-21 at 08:37 -0500, Steve Holden wrote:
> 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
> >

>
>


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
Triple nested loop python (While loop insde of for loop inside ofwhile loop) Isaac Won Python 9 03-04-2013 10:08 AM
Re: How to write a simple shell loop in python? James Mills Python 0 01-21-2009 05:33 AM
Re: How to pass shell variable to shell script from python Christian Heimes Python 0 02-27-2008 10:53 AM
can I run unix shell command in the ModelSim shell? clinton__bill@hotmail.com VHDL 2 02-18-2005 10:04 PM



Advertisments