获取程序执行文件路径是Python开发中很常见的需求。本文将介绍2种常用的Python获取程序执行文件路径的方法。
方法一:使用os模块的path属性
下面是一段使用os模块获取程序执行文件路径的Python代码:
import os
# 获取当前运行的py文件的文件名
print(__file__)
# 获取当前运行的py文件所在的目录
print(os.path.dirname(os.path.abspath(__file__)))
首先,Python内置了一个特殊变量__file__
,获取当前运行的py文件的文件名。然后,使用os.path模块的abspath()方法将文件名转换成绝对路径,再使用os.path.dirname()方法取出文件所在的目录即可。
方法二:使用sys模块的argv属性
下面是一段使用sys模块获取程序执行文件路径的Python代码:
import sys
import os
# 获取程序执行的绝对路径
path = os.path.abspath(sys.argv[0])
print(path)
# 获取程序执行的目录
dir_path = os.path.dirname(path)
print(dir_path)
sys.argv是一个包含命令行参数的列表。一般情况下,列表中第一个元素是脚本文件名,因此,这里的sys.argv[0]就是程序的绝对路径。使用os.path.abspath()方法将其转换成绝对路径,再使用os.path.dirname()方法取出其所在目录即可。
示例说明
示例1
现在有一个名叫test.py
的Python脚本,它在D:\python_project
目录下。
# test.py文件的内容如下
import os
# 获取当前运行的py文件的文件名
print(__file__)
# 获取当前运行的py文件所在的目录
print(os.path.dirname(os.path.abspath(__file__))))
执行该脚本,会得到以下输出结果:
D:\python_project\test.py
D:\python_project
示例2
设在/var/www/cgi-bin/
目录下有一个名叫test.py
的python脚本。
# test.py文件的内容如下
import sys
import os
# 获取程序执行的绝对路径
path = os.path.abspath(sys.argv[0])
print(path)
# 获取程序执行的目录
dir_path = os.path.dirname(path)
print(dir_path)
执行该脚本,会得到以下输出结果:
/var/www/cgi-bin/test.py
/var/www/cgi-bin
通过上述两个示例,我们可以看出,无论在什么系统环境下,Python获取程序执行文件路径的方法都是可行的。当然,也需要根据实际情况选择适合自己的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python获取程序执行文件路径的方法(推荐) - Python技术站