gpt4 book ai didi

python - 如何将包含空格或引号的脚本参数传递给 PyCharm?

转载 作者:行者123 更新时间:2023-11-28 18:37:02 24 4
gpt4 key购买 nike

我可以运行(对于命令行)

myscript.py '--pm execute.shell(cmd="ls -l", nonInteractive=True)'

但是,假设我要调试 myscript.py,并将“编辑配置 Python”对话框中的“脚本参数:”字段设置为:

--pm execute.shell(cmd="ls -l", nonInteractive=True)

它在“ls”和“-l”之间的空格处呕吐。有没有办法解决这个问题?使用 ' 或 "引号似乎行不通:

--pm 'execute.shell(cmd="ls -l", nonInteractive=True)'
--pm "execute.shell(cmd='ls -l', nonInteractive=True)"

在这两种情况下,引号都出现在参数中。


更新:运行:

import sys
for x in sys.argv:
print "<%s>"%(x,)

Script parameters: a  \ b " c" "\ d" ' e' '\ f' "a 'b' \"c\""

给出:

<cmd.py>
<a>
<\>
<b>
< c>
<\ d>
<'>
<e'>
<'\>
<f'>
<a 'b' "c">

看起来像:

  • 转义被忽略(\按字面意思处理),除了前面的“
  • 一个非转义的 "开始一个可能包含空格的 block
  • '按字面意思对待

所以,神奇的答案是:

Script parameters:  --pm "execute.shell(cmd='ls -l', nonInteractive=True)"

Script parameters:  --pm "execute.shell(cmd=\"ls -l\", nonInteractive=True)"

最佳答案

我不是 100% 确定这个问题。由于我没有评论权限,所以我将其写为答案。

将“ls -l”更改为“ls-\l”应该有效,至少在 *nix 系统上是这样。

相关文档/错误报告位于 https://youtrack.jetbrains.com/issue/PY-4715https://youtrack.jetbrains.com/issue/IDEA-72632其中指出您需要使用系统相关方法而不是使用通用方法来转义空格。通用系统独立方法的提议显然被否决了。

编辑:--pm""execute.shell(cmd=\"ls""-l\",""nonInteractive=True) 有效。

关于python - 如何将包含空格或引号的脚本参数传递给 PyCharm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31394458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com