在Python脚本中,是否有任何方法可以判断解释器是否处于交互模式?这将很有用,例如,当您运行交互式Python会话并导入模块时,将执行略有不同的代码(例如,关闭日志记录)。
我已经看过判断python是否处于-i模式并在那里尝试了代码,但是,该函数仅在使用- i标志调用了Python的情况下才返回true,而在用于调用交互模式的命令python没有参数时则返回true 。
python
我的意思是这样的:
if __name__=="__main__": #do stuff elif __pythonIsInteractive__: #do other stuff else: exit()
__main__.__file__ 在交互式解释器中不存在:
__main__.__file__
import __main__ as main print hasattr(main, '__file__')
这也适用于通过python -c而不是来运行的代码python -m。
python -c
python -m