【发布时间】:2018-10-29 15:25:42
【问题描述】:
当我注意到 PyCharm 的行为与我的控制台不同时,我试图通过 PyCharm 传递一些参数。当我在所有参数之间传递没有空格的参数时都可以正常工作,但是当我的参数中包含空格时,行为就会不同。
def main():
"""
Main function
"""
for i, arg in enumerate(sys.argv):
print('Arg#{}: {}'.format(i, arg))
如果我运行相同的功能:
python3 argumnents_tester.py 'argument 1' argument2
在 PyCharm 中运行:
Arg#0:/home/gorfanidis/PycharmProjects/test1/argparse_test.py
Arg#1: '参数
Arg#2:1'
参数#3:参数2
在控制台中运行:
Arg#0:argparse_test.py
Arg#1:参数 1
参数#2:参数2
因此,PyCharm 倾向于完全忽略引号,并使用空格分割参数,而不考虑任何引号。此外,带引号的参数与不带引号的相同参数的处理方式不同。
问题是为什么会发生这种情况,在实际层面上,我应该如何使用 PyCharm 传递包含空格的参数?
顺便说一下,我使用的是 Ubuntu 16.04。
【问题讨论】:
-
您尝试过使用不同类型的报价吗?
str.format()在print()中的双引号和在pycharm 中的命令参数引用的单引号? -
@cryptonome 你是对的,它似乎可以使用双引号。如果您愿意提供它作为答案,我会接受。
-
事情是我认为@guidot 也是正确的,除非这严格不会部署在其他任何地方,您应该考虑该标准如何在野外的各种命令行中工作,即 sh,重击,zsh
-
问题是我希望 PyCharm 和控制台具有相同的功能,所有其他都是关于代码潜在用途的假设。
-
好吧,我会用后记来写一个答案,列出对 shell 与 pycharm 的关注。