一尘不染

判断Python是否处于交互模式

python

在Python脚本中,是否有任何方法可以判断解释器是否处于交互模式?这将很有用,例如,当您运行交互式Python会话并导入模块时,将执行略有不同的代码(例如,关闭日志记录)。

我已经看过判断python是否处于-i模式并在那里尝试了代码,但是,该函数仅在使用-
i标志调用了Python的情况下才返回true,而在用于调用交互模式的命令python没有参数时则返回true 。

我的意思是这样的:

if __name__=="__main__":
    #do stuff
elif __pythonIsInteractive__:
    #do other stuff
else:
    exit()

阅读 220

收藏
2020-12-20

共1个答案

一尘不染

__main__.__file__ 在交互式解释器中不存在:

import __main__ as main
print hasattr(main, '__file__')

这也适用于通过python -c而不是来运行的代码python -m

2020-12-20