我正在Linux下从命令行(Bash)启动Python脚本。我需要打开Python,导入一个模块,然后解释代码行。然后控制台必须保留在Python中(不要退出)。我该怎么做?
我尝试过像这样的别名:
alias program="cd /home/myname/programs/; python; import module; line_of_code"
但是这只会启动python并且命令不会被执行(没有模块导入,也没有处理代码行。)
这样做的正确方法是什么,只要我需要在脚本执行后保持Python打开(不退出)? 非常感谢!
答案 0 :(得分:8)
使用子程序而不是别名
callmyprogram(){
python -i -c "import time;print time.localtime()"
}
callmyprogram
答案 1 :(得分:6)
一种简单的方法是使用“代码”模块:
python -c "import code; code.interact(local=locals())"
当调用code.interact()时,这将使您进入交互式shell。 local
的{{1}}关键字参数用于预填充创建的解释器的默认命名空间;我们将使用interact
,这是一个内置函数,它将本地名称空间作为字典返回。
你的命令看起来像这样:
locals()
将您带入具有正确环境的解释器。
答案 2 :(得分:3)
示例:
python -c "import time ; print 'waiting 2 sec.'; time.sleep(2); print 'finished' "