python获取当前exe的文件名

本文探讨了在Python中如何通过os和sys模块获取脚本自身的文件名以及调用者的路径。当直接运行a.py时,f1和f2都会返回a.py的路径。然而,当在b.py中导入并执行a.py,f1将得到a.py的路径,而f2则得到b.py的路径,展示了不同导入方式下路径获取的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取脚本自身的文件名有多种方式,例如:

1、f1 = os.path.basename(__file__)

2、f2 = sys.argv[0]

以上代码如果直接写在a.py中,并且直接执行a.py,得到f1、f2是相同的。都是得到a.py的路径

但如果在b.py中引入a (import a),然后直接执行b.py,那么f1得到的是a的路径,f2得到的是b的路径:

# a.py:

import os,sys

class AAA():
    def __init__(self):
        f1 = os.path.splitext(os.path.basename(__file__))[0]
        fx = sys.argv[0]
        f3 = os.path.splitext(os.path.basename(fx))[0]
        print(f"f1:{f1}")
        print(f"fx:{fx}")
        print(f"f2:{f2}")

# b.py

from a import AAA

x=AAA()
quit()

得到:

f1:a
fx:C:/test/b.py
f2:b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值