for-loop on cmd-line

suzaku satorulogic at gmail.com
Thu Oct 11 07:50:57 EDT 2012


According to the document (http://docs.python.org/using/cmdline.html#interface-options),
> When called with -c command, it executes the Python statement(s) given as command. Here command may contain multiple statements separated by newlines. Leading whitespace is significant in Python statements!

So you should replace the semicolon with newline.

BTW, the loop can be simplified using `enumerate` like this:

   for i, p in enumerate(sys.path):
     

On Thursday, October 11, 2012 7:24:31 PM UTC+8, Gisle Vanem 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):
> 
> 
> 
>   python -c "import sys,os; i=0; for p in sys.path: print('sys.path[%%2d]: %%s' %% (i, p)); i+=1"
> 
> 
> 
> But:
> 
>   File "<string>", line 1
> 
>     import sys,os; i=0; for p in sys.path: print('sys.path[%2d]: %s' % (i, p)); i+=1
> 
>                           ^
> 
> SyntaxError: invalid syntax
> 
> 
> 
> The caret is on the 'for'. What's the problem?
> 
> 
> 
> --gv



More information about the Python-list mailing list