我正试图为我在python中经常输入的命令节省一些按键。
在我的
python startup script
,我定义了一个名为LOAD的函数,它与IMPORT类似,但添加了一些功能。它只需要一个字符串:
def load(s):
# Do some stuff
return something
为了调用这个函数,我必须键入
>>> load('something')
我宁愿简单地输入:
>>> load something
我和巨蟒一起跑
readline
支持,所以我知道这里存在一些可编程性,但是我不知道使用它是否可以实现这类功能。
我试图用
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()
它工作得很好,但我仍然对其他解决方案感兴趣。