python3,py编译成exe,获取当前路径,__file__无效
做了个例子,试了主要的获取当前路径的方法
# coding:utf-8
# 文件路径相关模块 import os import sys
# 获取当前py文件的文件夹路径 print( "__file__:" + __file__) print ( "os.path.dirname( __file__ ):" + os.path.dirname( __file__ ) ) print ( "os.path.abspath(__file__):" + os.path.abspath(__file__) ) print ( "os.path.dirname(os.path.abspath(__file__)):" + os.path.dirname(os.path.abspath(__file__)) ) print ( "os.path.realpath(__file__):" + os.path.realpath(__file__) )
print ( "sys.path[0]:" + sys.path[0] ) print ( "sys.argv[0]:" + sys.argv[0] ) print ( "os.getcwd():" + os.getcwd() ) print ( "os.path.dirname( sys.argv[0] ):" + os.path.dirname( sys.argv[0] ) ) |
py和exe执行的结果
结论:
sys.argv[0]
在py和exe下都有效
os.path.dirname( sys.argv[0] )可以获取当前文件的目录
其他关键字:
FileNotFoundError No such file or directory
os.path.dirname