Python主文件__

2024-09-17 07:29:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个快速的问题,在python文档中找到答案时遇到了一个问题。在

文件名=Test\py

import __main__

def test():
    print('test text')

if __name__ == "__main__":
    print(__main__.__file__)
    test()

当我从命令行运行这个命令时,它返回:

^{pr2}$

但是如果我从python上单击run(F5)运行它,就会得到。在

Traceback (most recent call last):
  File "C:\Python27\Test_.py", line 7, in <module>
    print(__main__.__file__)
AttributeError: 'module' object has no attribute '__file__'

为什么我可以从命令行运行它,它可以正常工作,但如果我从python运行它,我会得到一个错误。当我从python运行c:\Python27\Test_.py时,有没有一种方法可以获得它。在


Tags: 答案text命令行文档pytestimportmain
1条回答
网友
1楼 · 发布于 2024-09-17 07:29:52

从文件运行脚本时,__main__模块实际上就是该文件。另一方面,在Python解释器提示符中,__main__模块只是默认的名称空间,即解释器,特别是运行交互提示符的地方,它没有与之关联的文件(松散地说,文件是<stdin>)。在

当您按F5键以空闲状态运行代码时,它的作用相当于直接将代码复制/粘贴到解释器中。它不可能与该文件有任何关联。在

另一方面,如果您运行import Test_,那么现在该文件中的代码与Test_模块相关联,您会发现Test_.__file__给出了相关的文件名。在

不管它值多少钱,几乎没有任何理由import __main__。如果您想让脚本打印它用完的文件,您只需:

if __name__ == '__main__':
    print __file__

在其他可能性中。在

相关问题 更多 >