我正在尝试使用“-c”参数调用Python,以允许我轻松地运行一些任意的python代码,如下所示:
python.exe -c“for idx in range(10):print idx”
现在这个代码在我的批处理文件中工作正常,但是,当我想做更多的事情时,我遇到了问题.
请考虑以下Python代码:
foo = 'bar'
for idx in range(10):
print idx
然后这将在stdout上给你0-9.但是,如果我将它折叠成一行,使用分号作为分隔符,以获得以下内容:
foo = 'bar';for idx in range(10): print idx
并尝试使用python.exe -c运行它,它会引发一个SyntaxError:
C:\Python>python.exe -c "foo = 'bar';for idx in range(10): print idx"
File "", line 1
foo = 'bar';for idx in range(10): print idx
^
SyntaxError: invalid syntax
有人知道如何在不切换到单独的.py文件的情况下实际使用它吗?
我是在.cmd批处理文件中运行它,通过调用方法,如下所示:
call python.exe -c "blah blah"
生成相同的错误.
解决方法:
您需要输入命令字符串作为多行参数.使用linux,这就像使用enter键一样简单,例如(注意bash添加了>字符,我不必输入它们):
$python -c "foo = 'bar'
> for idx in range(10):
> print idx"
但是在Windows上,您需要在按Enter键之前键入^键,并留下一个空行以获取换行符,例如(更多?由cmd添加)
C:\> python.exe -c "foo = 'bar'^
More?
More? for idx in range(10):^
More?
More? print idx"
标签:python,cmd,syntax-error,interpreter
来源: https://codeday.me/bug/20190621/1256492.html