思路:首先获取python代码所在py文件的路径(位置)信息,然后截取出文件名
方法一:使用python文件默认的‘ file ’属性
print(__file__)
# 输出
# D:/AllCodeFile/pythoncode/LegalProvisions/main.py (这是我脚本文件的全局路径)
优点是不需要import任何库,代码简单,一行语句即可输出。
获取到文件名,带或者不带后缀:
# 带文件格式后缀
print(__file__.split("/")[-1])
输出为 main.py
# 不带文件格式后缀
print(__file__.split("/")[-1].split(".")[0])
输出为 main
方法二:使用 sys.argv[0]
import sys
print(sys.argv[0])
# 输出
# D:/AllCodeFile/pythoncode/LegalProvisions/main.py (这是我脚本文件的全局路径)
注意,这里需要import系统库!
sys.argv 是输入参数列表 sys.argv[0] 表示第一个参数,就是这个python文件本身的路径(全路径)
sys.argv[] 与 C语言 和 java 中的 main(String[] agrs) 类似,能够从程序外部获取运行参数
正常我们运行python脚本就相当于在终端中执行:python ./helloworld.py
也就是 ./helloworld.py 作为第一个参数传入python解释器,如果需要用道更多参数可以继续添加:
python ./helloworld.py 1 2 'test'
获取到文件名,带或者不带后缀:
# 带文件格式后缀
print(sys.argv[0].split("/")[-1])
输出为 main.py
# 不带文件格式后缀
print(sys.argv[0].split("/")[-1].split(".")[0])
输出为 main
补充
使用 os.path 处理得到文件名
import os
print(os.path.dirname(__file__))
print(os.path.basename(__file__)) # 当前文件名名称
print(os.path.split(__file__))
print(os.path.split(__file__)[-1])
print(os.path.split(__file__)[-1].split(".")[0])
对应的输出为:
D:/AllCodeFile/pythoncode/LegalProvisions
main.py
('D:/AllCodeFile/pythoncode/LegalProvisions', 'main.py')
main.py
main
或者
import os
import sys
print(os.path.dirname(sys.argv[0]))
print(os.path.basename(sys.argv[0])) # 当前文件名名称
print(os.path.split(sys.argv[0]))
print(os.path.split(sys.argv[0])[-1])
print(os.path.split(sys.argv[0])[-1].split(".")[0])
对应的输出为:(与上段代码的输出结果一致)
D:/AllCodeFile/pythoncode/LegalProvisions
main.py
('D:/AllCodeFile/pythoncode/LegalProvisions', 'main.py')
main.py
main