在Windows命令提示符中使用“python -c”选项

4

我希望能够在Windows的命令提示符中直接执行一个Python脚本字符串

经过一番搜索,我找到了python -c选项。

我执行了以下操作:

python -c 'print "Hello"'

但是它会出现以下错误:
  File "<string>", line 1
    'print
         ^
SyntaxError: EOL while scanning string literal

同样的命令在Ubuntu中能正常工作,它会打印输出。
hello

如何在 Windows 命令提示符中直接执行 Python 命令?

1
你在Windows中使用的Python版本是哪个? - Chaker
我在Windows中使用2.7.9,在Ubuntu中使用2.7.6... - Codebender
1
如果您正在从cmd.exe运行此命令,请翻转引用,例如python -c“打印'Hello'” - Eryk Sun
1个回答

8
在Windows上,反转引用以使用双引号引用-c参数,例如:python -c "print 'Hello'"
命令行由python.exe中的C运行时启动代码解析,遵循解析C ++命令行参数列出的规则。此外,cmd.exe通常会忽略双引号字符串中的许多特殊字符(除了%)。例如,python -c'print 2> 1'不仅被Python错误解析,而且cmd.exe将stdout重定向到名为1'的文件中。相比之下,python -c"print 2> 1"可以正常工作,即打印True

一个问题是在命令行中处理%字符,例如:python -c "print '%username%'"。如果你不想让cmd.exe扩展环境变量,你可以使用%^在引号外面转义%。^字符是cmd的转义字符,所以你可能期望它是相反的,即^%。然而,cmd实际上不使用^来转义%,而是避免将username%作为环境变量解析。这需要将-c参数拆分成以下几个部分进行引用:python -c "print '"%^"username%'"。在这种特殊情况下,由于其余命令没有空格或特殊字符,这可以更简单地写成python -c "print "'%^username%'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接