python 获取当前 代码 脚本 文件 文件名

本文介绍了在Python中如何获取当前代码脚本的文件名,包括使用`__file__`属性和`sys.argv[0]`。通过`__file__`无需导入任何库,一行代码即可;而`sys.argv[0]`则需要导入sys库,它类似于C和Java中的命令行参数。
摘要由CSDN通过智能技术生成

思路:首先获取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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值