python的基础以及提高

如何自动导入子模块下的services 包

2019-03-02  本文已影响0人  g_s_007

os 模块

解决如果自动导包,首先介绍下os 模块

  import os 
  # 获取环境变量值
  os.environ # environ 实例,是一个key:value 的字典,可以用过字典取值的方式获取value 
  os.getenv(key,default=None) # 如os.getenv("PATH") 也是可以获取key:PATH 对应的value 值
  # 获取路径
  os.path # 这个path 是ntpath 或者posixpath 取决于你的系统
  os.path.dirnamme("/user/zhngsan")  # 返回/user 也就是Return the head (dirname) part of a path, same as split(path)[0]  可用来当作多个地址的前缀取用
os.path.isabs('/user/zhangsan')  # 返回路径是否是一个绝对路径:True False
os.path.join("/","user/zhangsan")  # 返回/user/zhangsan,用来连接两个或者多个pathname
os.path.basename("/user/zhangsan") # 返回一个路径的tail 值,zhangsan
os.path.lexists(path) # 测试此路径是否存在,返回布尔值
os.walk(top) # 返回目录树 生成器
    # 自动导入子模块下的services包
    base_dir = os.path.dirname(os.path.abspath(__file__))
    module_path_prefix = os.path.dirname(base_dir)
    for cur_dir, _, files in os.walk(base_dir):
        if 'services.py' in files:
            __import__(cur_dir.replace(module_path_prefix, '')
                    [1:].replace('/', '.')+'.services')
上一篇 下一篇

猜你喜欢

热点阅读