python中的模块名称是啥_如何在Python中访问当前的执行模块或类名称?

单独使用os.path.abspath(__file__)可为您提供主模块的相对路径和导入模块的绝对路径。 意识到这一点,在os.path工具的帮助下,我们可以通过两种方法不断获取模块文件。

对于文件名,仅使用os.path.abspath(__file__)。

有关完整路径,请使用os.path.abspath(__file__)。

演示:

/tmp $ cat f.py

from pprint import pprint

import os

import sys

pprint({

'sys.modules[__name__]': sys.modules[__name__],

'__file__': __file__,

'__file__.split(os.path.sep)[-1]': __file__.split(os.path.sep)[-1],

'os.path.abspath(__file__)': os.path.abspath(__file__),

})

/tmp $ cat i.py

import f

结果:

## on *Nix ##

/tmp $ python3 f.py

{'sys.modules[__name__]': ,

'__file__': 'f.py',

'__file__.split(os.path.sep)[-1]': 'f.py',

'os.path.abspath(__file__)': '/tmp/f.py'}

/tmp $ python3 i.py

{'sys.modules[__name__]': ,

'__file__': '/tmp/f.pyc',

'__file__.split(os.path.sep)[-1]': 'f.pyc',

'os.path.abspath(__file__)': '/tmp/f.pyc'}

## on Windows ##

PS C:\tmp> python3.exe f.py

{'sys.modules[__name__]': ,

'__file__': 'f.py',

'__file__.split(os.path.sep)[-1]': 'f.py',

'os.path.abspath(__file__)': 'C:\\tools\\cygwin\\tmp\\f.py'}

PS C:\tmp> python3.exe i.py

{'sys.modules[__name__]': ,

'__file__': 'C:\\tools\\cygwin\\tmp\\f.py',

'__file__.split(os.path.sep)[-1]': 'f.py',

'os.path.abspath(__file__)': 'C:\\tools\\cygwin\\tmp\\f.py'}

如果您想去除末尾的“ .py”,则可以轻松实现。 (但请不要忘记您可以运行“ .pyc”。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值