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
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to