python中schedule模块的简单使用 || importlib.import_module动态导入模块
1 import schedule
2 import time
3
4 def start(): #定义一个函数
5 print("****")
6
7
8 if __name__ == '__main__':
9 schedule.every(2).seconds.do(start) #它的意思就是每隔2秒执行一次start函数
10 while True: #这里就是定义一个死循环
11 schedule.run_pending() //每次检查一下两秒间隔到了没有
12 time.sleep(1) //这个就是让程序休眠几秒
除了可以间隔多少秒执行一次函数,还可以间隔多少分钟、小时
1、间隔两小时
schedule.every(2).hours.do()
2、间隔两分钟
schedule.every(2).minutes.do()
importlib.import_module动态导入模块
先看目录结构

项目xiang1里面有一个python包为a。a包里面有一个python文件aa.py和一个包b。b包里面有一个python文件bb.py和一个包c。c包里面有一个python文件cc.py
前提条件:
aa.py,bb.py,cc.py三个文件里面都有一个同样的类
class People(object):
def __init__(self,age,name='嘿嘿'):
self.age=age
self.name=name
1、把aa.py中People类导入到cc.py
import importlib
module = importlib.import_module('a.aa')
classes = getattr(module,'People')
peo = classes(1)
print(peo.__dict__)
输出结果
{'age': 1, 'name': '嘿嘿'}
注释:
importlib.import_module这个方法是导入一个模块,有两种导入方式
1、绝对路径导入
2、相对路径导入(相对路径的例子在下面)
这种导入方式用的是绝对路径导入,绝对路径只能包括包名或者python文件名。所以没有写成“xiang1.a.aa”而写成了“a.aa”
getattr函数要传两个参数,一个是你要从哪个模块里面导入哪个内容。(这两个哪个,就分别对应它的两个参数)
2、把bb.py中People类导入到cc.py
import importlib
module = importlib.import_module('a.b.bb')
classes = getattr(module,'People')
peo = classes(1)
print(peo.__dict__)
'''
输出结果:
{'age': 1, 'name': '嘿嘿'}
'''
3、把bb.py中People类导入到aa.py
import importlib
module = importlib.import_module('.b.bb','a')
classes = getattr(module,'People')
peo = classes(1)
输出结果还是上面那个
注释:
这个就用到的是相对路径导入,这个时候你的路径名就是以 ‘./’ 来开头的。而且要传两个参数
1、第一个参数是相对路径
2、第二个参数是以谁为相对路径(哪个谁就是第二个参数)
python中schedule模块的简单使用 || importlib.import_module动态导入模块的更多相关文章
- 动态导入模块:__import__、importlib、动态导入的使用场景
相关内容: __import__ importlib 动态导入的使用场景 首发时间:2018-02-23 16:06 __import__: 功能: 是一个函数,可以在需要的时候动态导入模块 使用: ...
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)
实现抽象类的两种方式 方式一 from abc import ABCMeta from abc import abstractmethod class BaseMessage(metaclass=AB ...
- Python importlib(动态导入模块)
使用 Python importlib(动态导入模块) 可以将字符串型的模块名导入 示例: import importlib module = 'module name' # 字符串型模块名 test ...
- python学习之-- 动态导入模块
python 动态导入模块方法1: __import__ 说明: 1. 函数功能用于动态的导入模块,主要用于反射或者延迟加载模块. 2. __import__(module)相当于import mod ...
- python动态导入模块——importlib
当在写代码时,我们希望能够根据传入的选项设置,如args.model来确定要导入使用的是哪个model.py文件,而不是一股脑地导入 这种时候就需要用上python的动态导入模块 比如此时文件结构为: ...
- Python中关于csv的简单操作
Python中关于csv的简单操作 CSV操作简单,直接import csv即可, 主要使用reader和pandas 1 reader的简单使用 csv.reader("1.csv&quo ...
- Python中关于txt的简单读写模式与操作
Python中关于txt的简单读写操作 常用的集中读写模式: 1.r 打开只读文件,该文件必须存在. 2.r+ 打开可读写的文件,该文件必须存在. 3.w 打开只写文件,若文件存在则文件长度清为0,即 ...
- python中动态导入模块
当导入的模块不存在时,就会报ImportError错误,为了避免这种错误可以备选其他的模块或者希望优先使用某个模块或包,可以使用try...except...导入模块或包的方式. 例如: Python ...
- Python 动态导入模块
动态导入模块 目录结构: zhangsandeMacBook-Air:1110 zhangsan$ tree . . ├── lib │ └── aa.py ├── test1.py lib目录下 ...
随机推荐
- Hadoop源码:namenode格式化和启动过程实现
body { margin: 0 auto; font: 13px / 1 Helvetica, Arial, sans-serif; color: rgba(68, 68, 68, 1); padd ...
- linux最大打开文件句柄数
linux最大打开文件句柄数,即打开文件数最大限制,就是规定的单个进程能够打开的最大文件句柄数量(Socket连接也算在里面,默认大小1024) liunx中文件句柄有两个限制,一种是用户级的,一种是 ...
- alter column和modify column
5.6中,发现其实alter column 和更改modify column 步骤是一样的 mysql> create table xs(name varchar(12),age int def ...
- 【排序基础】5、插入排序法 - Insertion Sort
插入排序法 - Insertion Sort 文章目录 插入排序法 - Insertion Sort 插入排序设计思想 插入排序代码实现 操作:插入排序与选择排序的比较 简单记录-bobo老师的玩转算 ...
- kubernets之从应用访问pod元数据以及其他资源
一 downwardAPI的应用 1.1 前面我们介绍了如何通过configmap以及secret将配置传入到pod的容器中,但是传递的这些都是预先能够安排和只晓得,对于那些只有当pod创建起来之 ...
- kubernets之namespace
一 命名空间的介绍以及作用 1 概念 为了方便不同部门之间对kubernets集群的使用,并且对其进行有效的隔离,kubernets提供了一种资源隔离手段,通过将各种不同资源分组到 一个区域,并且统 ...
- 强制删除 Terminating 状态的pod
[root@k8s-master coredns]# kubectl get podNAME READY STATUS RESTARTS ...
- 力软最新版本与.netCore版本
功能强大,直接上图: 加微信或QQ交流开发技术:25489181 netcore版本 版本优势: .NET Core是适用于 Windows.Linux 和 macOS 的免费.开源托管的计算机软件框 ...
- SAP系统跨平台字符编码转换
SAP系统在进行了夸平台的迁移,可能会遇到操作系统层文件编码不同,导致SAP系统无法识别或者乱码的问题.例如SAP系统从AIX平台迁移到linux平台,SAP应用服务器的编码会发生变化,从4102变化 ...
- linux系统图形化管理工具
webmin是一个非常好的图形化管理工具,提供了系统管理员对于linux系统的运维效率.对于那些记不住命令,新入门的新手真的是一个很好的工具呀,上图吧. 这是系统管理的首页,可以看到,CPU,内存.虚 ...