python动态导包实现命令行动态调用不同项目

实现的方式是 使用python 内置包 argparse ,学习 argparse 请点击

思想是:
1.使用argparse 获取命令行参数,比如命令行传递的项目名
2.使用动态导包 import(project_name)
3.获取包内不同模块或包 getattr()

实例: 最终目的是通过调用main文件来让不同项目下的test文件执行
当前文件夹下有项目A文件夹 ,项目B文件夹,main.py文件
项目A 文件夹下有 prj 文件夹(包)
test_prj 下有__init__.py文件 有 test.py文件
项目B可以创建和A项目一样的目录,这里就不写了,自己手动创建

test.py文件内容如下:

class A:
  def start(self):
    print("A项目启动了")

__init__.py文件内容如下

from .test import *
def start():
  a1 = A()
  a1.start()

那么我如何想要通过main.py文件动态调用项目A启动呢?
方法就是在main.py里面写入

import argparse

parser = argparse.ArgumentParser(description='test __import__ ')
parser.add_argument("--prj_name",dest="prj_name",default="A.prj")

args = parser.parse_args()
prj_name = args.prj_name
prj_module = __import__(prj_name)
test_prj = getattr(prj_module,prj_name.split(".")[-1])
test_prj.start()

下面就是调用命令

在main.py文件夹下
打开终端
输入

启动项目A
python main.py --prj_name  "A.prj"  
或 
python main.py    

启动项目B
python main.py --prj_name  "B.prj"  

这样就使用动态调用不同项目

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,333评论 0 10
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,656评论 1 32
  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 3,908评论 0 27
  • Runtime Runtime 是一个用C写的运行时库,主要为 C 添加了面向对象的能力并创造了 Objectiv...
    周末年安阅读 758评论 0 48
  • 早春的田野就像一架瑶琴 清风掠过案台 推着一片花海 涌跃起奇美的梵音 拨动着一根根琴弦 弹奏出一首悦耳动听的曲调 ...
    幽兰33阅读 297评论 0 4

友情链接更多精彩内容