On 10/21/2013 5:14 PM, random...@fastmail.us wrote:
On Mon, Oct 21, 2013, at 16:47, Terry Reedy wrote:
Manual says "-c <command>
Execute the Python code in command. command can be one or more
statements separated by newlines, with significant leading whitespace as
in normal module code."
In Windows Command Prompt I get:
C:\Programs\Python33>python -c "a=1\nprint(a)"
File "<string>", line 1
a=1\nprint(a)
^
SyntaxError: unexpected character after line continuation character
(Same if I remove quotes.)
How do I get this to work?
Well, ignoring the "why would you want to" factor...
Because it is claimed to be possible ;-)
That particular example could be written in one line with ';'. But it is
a minimal example that either shows the problem or obviously works. (IE,
what we recommend people post ;-). I initially tried to test a version
of Chris Angelico's code from another thread without writing it to a file:
def a():
def b():
nonlocal c
I also wanted to know if 'newline' in the doc meant a literal newline
(it appears so, but it seemed impossible on Windows) rather than '\n'
and if the problem was peculiar to Windows. And I need to know that to
run "python -c ... " in a subproccess from Python.
this actually _is_ possible.
Even on Windows .. I presume this is easier on *nix.
C:\>python -c a=1^
More?
More? print(a)
1
You can put quotes around any part of the command you need spaces in,
but you _cannot_ have the ^ in quotes. So, with quotes, it would be as
follows:
C:\>python -c "a='1 2'"^
More?
More? print(a)
1 2
Spaces would be typical for a compound statememt header line. For a
third line, the second should have ^ added.
This is a very obscure feature of the command processor,
Really obscure ;-)
> and I don't know if it works inside a batch file.
It does:
---tem.bat
python -c "def f(a):"^
" print(a+1)"^
f(2)
---Command Prompt
C:\Programs\Python33>\Users\Terry\Documents\tem
C:\Programs\Python33>python -c "def f(a):"
" print(a+1)"
f(2)
3
---
3 lines echoed (they could have been suppressed) plus output.
--
Terry Jan Reedy
--
https://mail.python.org/mailman/listinfo/python-list