我有一个快速的问题,在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
时,有没有一种方法可以获得它。在
从文件运行脚本时,
__main__
模块实际上就是该文件。另一方面,在Python解释器提示符中,__main__
模块只是默认的名称空间,即解释器,特别是运行交互提示符的地方,它没有与之关联的文件(松散地说,文件是<stdin>
)。在当您按F5键以空闲状态运行代码时,它的作用相当于直接将代码复制/粘贴到解释器中。它不可能与该文件有任何关联。在
另一方面,如果您运行
import Test_
,那么现在该文件中的代码与Test_
模块相关联,您会发现Test_.__file__
给出了相关的文件名。在不管它值多少钱,几乎没有任何理由
import __main__
。如果您想让脚本打印它用完的文件,您只需:在其他可能性中。在
相关问题 更多 >
编程相关推荐