获取当前执行主脚本方法:sys.argv[0]和_ file _
(1)sys.argv
一个传给Python脚本的指令参数列表。sys.argv[0]是脚本的名字。一般得到的是相对路径,用os.path.abspath(sys.argv[0])得到执行文件的绝对路径:
dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) os.path.realpath(sys.argv[0])
推荐学习《Python教程》
如果在命令行执行sys.argv返回解释器路径:[‘/Library/Frameworks/Python.framework/Versions/3.6/bin/ipython3’]
(2)_ _ file_ _
获得当前执行模块所在的路径,一般为相对路径,用os.path.abspath(_ _ file_ _)得到执行文件的绝对路径:
dirname, filename = os.path.split(os.path.abspath( _ _ file_ _)) os.path.realpath(_ _ file_ _)
注意:Python控制台下,直接使用print _ _ file _ 是会导致 name ‘ _ file _ ’ is not defined错误的,因为这时没有在任何一个脚本下
执行,自然没有 _ file _ _的定义了。