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目录下 ...
随机推荐
- 入门OJ:亲戚
题目描述 或许你并不知道,你的某个朋友是你的亲戚.他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子.如果能得到完整的家谱,判断两个人是否亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代, ...
- MySQL ---- 锁知识
锁 我们知道mysql中支持很多个存储引擎,在不同的存储引擎下所能支持的锁是不同的,我们通过MyISAM和InnoDB来进行一下对比. 表级锁定(table-level) 表级别的锁定是MySQL ...
- django 组件 自定义过滤器 自定义标签 静态文件配置
组件 将一些功能标签写在一个html文件里,这个文件作为一个组件,如果那个文件需要就直接拿过来使用即可: 这是title.html文件,写了一个导航栏,作为一个公用的组件 <div style= ...
- Java并发包源码学习系列:阻塞队列BlockingQueue及实现原理分析
目录 本篇要点 什么是阻塞队列 阻塞队列提供的方法 阻塞队列的七种实现 TransferQueue和BlockingQueue的区别 1.ArrayBlockingQueue 2.LinkedBloc ...
- java虚拟机入门(一)-jvm基础
转行学java之前,总是听着大佬们说着java像个渣男一样可以跨平台,一次编译到处运行,瞬间,我就坚定了学java的信念,哎呀妈呀,得劲.真的学java之后,好像渣男也不是那么好学的,尤其这货的必杀技 ...
- 2021/1/20随记,MTU
背景: 事情是这样的,客户2台防火墙部署了ipsec,内网互通,但是其中ssh以及其他大命令之类的操作就会卡住,简单的vi命令可以使用. 解决: 排除网络问题,因为内网互通,其次是系统层面问题,最终定 ...
- missing required library sqlite.dll最终解决办法
missing required library sqlite.dll最终解决办法 昨天电脑还是好的,今天早晨打开navicat连接Mysql无缘无故报错"missing required ...
- 两个报文是如何进行 TCP 分组传输
16 | 如何理解TCP的"流"? https://time.geekbang.org/column/article/132443 TCP 是一种流式协议在前面的章节中,我们讲的都 ...
- 接口 Interfaces
Interfaces - zope.interface 5.0.2.dev0 documentation https://zopeinterface.readthedocs.io/en/latest/ ...
- BigDecimal add方法问题:调用add后,求和结果没变
import java.math.BigDecimal; public class DecimalAdd { public static void main(String[] args) { BigD ...