我试图为我在 Python 中经常键入的命令节省一些击键次数。
在我的python 启动脚本中,我定义了一个名为 load 的函数,它类似于 import,但增加了一些功能。它需要一个字符串:
def load(s):
# Do some stuff
return something
为了调用这个函数,我必须输入
>>> load('something')
我宁愿能够简单地输入:
>>> load something
我正在运行带有readline支持的 Python,所以我知道那里存在一些可编程性,但我不知道这种事情是否可以使用它。
我试图通过InteractivConsole
在我的启动文件中使用并创建它的一个实例来解决这个问题,如下所示:
import code, re, traceback
class LoadingInteractiveConsole(code.InteractiveConsole):
def raw_input(self, prompt = ""):
s = raw_input(prompt)
match = re.match('^load\s+(.+)', s)
if match:
module = match.group(1)
try:
load(module)
print "Loaded " + module
except ImportError:
traceback.print_exc()
return ''
else:
return s
console = LoadingInteractiveConsole()
console.interact("")
这适用于我必须按两次 Ctrl-D 才能退出 python 解释器的警告:一次退出我的自定义控制台,一次退出真正的控制台。
有没有办法在不编写自定义 C 程序并将解释器嵌入其中的情况下做到这一点?
编辑
在频道之外,我建议将其附加到我的启动文件的末尾:
import sys
sys.exit()
它工作得很好,但我仍然对替代解决方案感兴趣。