有没有办法告诉我何时使用PYTHONSTARTUP加载python文件而不是作为脚本运行?

时间:2011-01-03 22:16:25

标签: python

全部,   我最近发现了PYTHONSTARTUP环境变量,我期待设置几个实用程序函数来自动加载到我的解释器中。但是,我希望能够做的一件事是使用相同的脚本来设置环境变量本身。

我的问题是确定文件何时作为脚本运行。我的想法是使用if __name__ == "__main__":技巧来确定文件何时作为脚本运行,但测试表明,当文件通过PYTHONSTARTUP加载时,名称显示为"__main__"

有没有人知道如何识别文件作为脚本运行的时间与通过PYTHONSTARTUP加载文件的方式?

2 个答案:

答案 0 :(得分:3)

您可以检查PYTHONSTARTUP环境变量是否设置为当前文件名(通过__file__)。

 import os
 if os.environ.get('PYTHONSTARTUP') == __file__:
     print "Used as startup!"

对我来说很好。

答案 1 :(得分:1)

找到了更好的解决方案:

if sys.argv[0] == __file__:
    print "It works!"

基本上,因为文件的名称始终是argv []中的第一个参数,所以我们只检查argv[0]是否与__file__相同,这仅在文件打开时为真一个脚本。