【发布时间】:2018-03-24 22:37:38
【问题描述】:
获取以下脚本
import sys
for i in sys.argv:
print(i)
我需要sys.argv 来包含参数周围的引号。为此,当我在 Windows cmd 上执行此操作时,我会这样做
python temp.py p1 p2 """p3"""
现在奇怪的是:
cmd 中的输出是
p1 p2 "p3"
这是正确的。
但是当我在 Pycharm 中执行它时,用 p1 p2 """p3""" 填充 Script Parameters,sys.argv[3] 在 p3 周围没有引号,并且控制台输出(在 Pycharm 内)也没有在 p3 周围的引号
p1 p2 p3
如何让 Pycharm 尊重参数周围的三引号?
PyCharm Community Edition 2017.2.3
Build #PC-172.3968.37, built on September 1, 2017
JRE: 1.8.0_152-release-915-b11 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
【问题讨论】:
-
用反斜杠转义引号
-
@DmitryB。谢谢。
-
我仍然认为他们应该保留
cmd.exe python的行为,因为这就是Script Parameters的目的。 -
cmd.exe行为是特定于 Windows 的。由于 PyCharm 在多个平台上运行,因此仅模拟其中一个平台的行为是没有意义的。 -
@DmitryB。脚本参数的重点是如果您要在命令行上运行它并传递这些参数会怎样所以遵循与 Pycharm 当前正在运行的平台命令行相同的行为是有意义的开。