我已经编写了一个使用py2exe编译到exe的小型Windows服务,我从中读取了一个文件。它工作得很好 - 但是 - 我只能使用绝对路径来访问文件,使用相对路径将无法正常工作。在.net中,您可以执行以下操作:
System.Reflection.Assembly.GetEntryAssembly().Location
要获取.exe文件的路径,是否有类似于此的选项,但对于Python?
最诚挚的问候,
的Anders
答案 0 :(得分:1)
你有几个选择。如果您已有模块对象,则可以<module>.__file__
获取路径:
>>> import time
>>> time.__file__
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/time.so'
但是,通常您想知道当前模块的位置,在这种情况下您可以使用:
import inspect
path = inspect.currentframe().f_code.co_filename
(还要记住,这可以是Python可以加载的任何东西 - 所以它可以是.pyd,.pyc,.so,.dll等。)