如何在IPython中禁用通配符扩展?
有没有人知道怎么在IPython中关闭通配符扩展功能?
比如说,在使用Python 3和IPython 2.1.0的时候,如果能用类似下面的方式来运行或调试脚本就好了:
%run script.py "files1*.txt" "files2*.txt"
在IPython外面运行同样的命令是没问题的,但在IPython中,它会自动把通配符表达式展开,即使这些表达式被引号包起来,结果就是输入参数变成了一长串。
在IPython中调试是很不错的,但在这种情况下就变得很麻烦。有人知道怎么关闭通配符扩展吗?
1 个回答
4
关于 %run
的内联 ?
文档中提到:
参数会像在命令行中那样进行匹配。可以使用一些特定的模式,比如 '*'(代表任意多个字符)、'?'(代表一个字符)、'[seq]'(代表序列中的任意一个字符)和'[!seq]'(代表不在序列中的任意一个字符)。另外,波浪号 '~' 会被替换为用户的主目录。与真实的命令行不同的是,使用引号并不会阻止这些替换。如果你想要阻止替换,可以使用两个反斜杠(例如
\\*
)。如果你想完全禁用这些替换,可以使用 -G 这个选项。
所以,你可以选择使用 -G
选项,或者用双反斜杠来转义 *
。
你可以在网上查看到相同的文档(格式不同),链接是 关于 run
魔法命令的完整文档。