for-loop on cmd-line

Ramchandra Apte maniandram01 at gmail.com
Thu Oct 11 09:16:25 EDT 2012


On Thursday, 11 October 2012 18:44:44 UTC+5:30, Chris Angelico  wrote:
> On Thu, Oct 11, 2012 at 11:16 PM, D'Arcy J.M. Cain <darcy at druid.net> wrote:
> 
> > On Thu, 11 Oct 2012 13:24:22 +0200
> 
> > Gisle Vanem <gvanem at broadpark.no> wrote:
> 
> >
> 
> >> Hello list. I'm a newbie when it comes to Python.
> 
> >>
> 
> >> I'm trying to turn this:
> 
> >>
> 
> >>  def print_sys_path():
> 
> >>     i = 0
> 
> >>     for p in sys.path:
> 
> >>       print ('sys.path[%2d]: %s' % (i, p))
> 
> >>       i += 1
> 
> >>
> 
> >> into a one-line python command (in a .bat file):
> 
> >
> 
> > Is "one liner" an actual requirement or is the requirement to run it
> 
> > from the command line?
> 
> >
> 
> > python -c "
> 
> > import sys
> 
> > i = 0
> 
> > for p in sys.path:
> 
> >   print('sys.path[%2d]: %s' % (i, p))
> 
> >   i+=1
> 
> > "
> 
> >
> 
> > I don't know if this works on Windows or not.
> 
> 
> 
> It doesn't, I just tested it. Windows batch is appallingly crude
> 
> compared to a modern Unix shell; you may be able to find a way to get
> 
> around this, but the easiest solution for most batch files is going to
> 
> be an actual Python script file. You may be able to overlay your batch
> 
> and Python scripts with a trick like this:
> 
> 
> 
> rem = '''
> 
> @echo off
> 
> echo This is batch
> 
> \python32\python %0
> 
> echo All done
> 
> exit /b
> 
> rem '''
> 
> import sys
> 
> print("This is Python")
> 
> for i,p in enumerate(sys.path):
> 
> 	print('sys.path[%2d]: %s' % (i, p))
> 
> print("Python done")
> 
> 
> 
> You'll have a variable in Python called 'rem' which contains all your
> 
> batch code :) It exploits the fact that 'rem' makes a one-line
> 
> comment, but the triple quotes go across multiple lines. (The "exit
> 
> /b" should exit the batch script without closing cmd.exe - this is yet
> 
> another weird WEIRD wart in Windows batch. I'm pretty sure neither DOS
> 
> nor OS/2 batch required that parameter.)
> 
> 
> 
> ChrisA

What about the "Power" in PowerShell?



More information about the Python-list mailing list