Python获取程序所在目录
解决__file__或sys.argv[0]在py2exe下失效的问题。
选自pathutils模块。
http://www.voidspace.org.uk/python/pathutils.html#get-main-dir
##############################################################################
# These functions get us our directory name
# Even if py2exe or another freeze tool has been used
def main_is_frozen():
"""Return ``True`` if we're running from a frozen program."""
import imp
return (
# new py2exe
hasattr(sys, "frozen") or
# tools/freeze
imp.is_frozen("__main__"))
def get_main_dir():
"""Return the script directory - whether we're frozen or not."""
if main_is_frozen():
return os.path.abspath(os.path.dirname(sys.executable))
return os.path.abspath(os.path.dirname(sys.argv[0]))
##############################
解决__file__或sys.argv[0]在py2exe下失效的问题。
选自pathutils模块。
http://www.voidspace.org.uk/python/pathutils.html#get-main-dir
##############################################################################
# These functions get us our directory name
# Even if py2exe or another freeze tool has been used
def main_is_frozen():
"""Return ``True`` if we're running from a frozen program."""
import imp
return (
# new py2exe
hasattr(sys, "frozen") or
# tools/freeze
imp.is_frozen("__main__"))
def get_main_dir():
"""Return the script directory - whether we're frozen or not."""
if main_is_frozen():
return os.path.abspath(os.path.dirname(sys.executable))
return os.path.abspath(os.path.dirname(sys.argv[0]))
##############################
本文介绍了一种在Python中无论是否使用py2exe等冻结工具,都能有效获取当前运行脚本所在目录的方法。通过定义函数判断程序运行状态并返回正确的路径。
1232

被折叠的 条评论
为什么被折叠?



