【问题标题】:Disabling wildcard expansion in IPython?在 IPython 中禁用通配符扩展?
【发布时间】:2014-07-31 17:20:27
【问题描述】:

有人知道在 IPython 中禁用通配符扩展的方法吗?

例如,对于 Python 3 / IPython 2.1.0,如果能够使用类似以下内容的 %run%debug 脚本会很好:

%run script.py "files1*.txt" "files2*.txt"

在 IPython 之外运行相同的命令可以正常工作,但是,IPython 会自动扩展通配符表达式,即使它们被引号括起来,因此会产生一长串输入参数。

如果能够在 IPython 中进行调试会很好,但这在这种特殊情况下会变得很困难。知道是否可以禁用通配符扩展?

【问题讨论】:

  • 为什么不直接转义*
  • @goncalopp: %run 不使用外壳;它扩展参数,加载脚本,为脚本设置环境,并在当前进程中execs。

标签: python ipython wildcard argparse glob


【解决方案1】:

%run 的内联 ? 文档说:

使用类似 shell 的全局匹配扩展参数。模式 '*'、'?'、'[seq]' 和 '[!seq]' 可以使用。此外, 波浪号 '~' 将被展开到用户的主目录中。不像 真正的贝壳,报价不会抑制扩展。采用 两个反斜杠(例如\\*)以抑制扩展。 要完全禁用这些扩展,您可以使用 -G 标志。

所以,要么使用-G 标志,要么使用双反斜杠转义*

您可以使用the full docs on the run magic在线查看相同的文档(格式不同)。

【讨论】:

  • 谢谢——我检查了几次文档,但不知何故忽略了这一点。好收获!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多