使用计算机的时钟调度程度,在特定的时间和日期运行。
time模块
- Python内置time模块能读取到系统时钟的当前时间
time.time()返回UTC时间的秒数
time.sleep()函数让程序暂停一会 - round(now, 4)将数字四舍五入到最接近的整数。将now舍入到小数点后四位数字。
datetime模块
- datetime.datetime.now()
tmp = datetime.datetime.now() print(tmp) 结果是: 2018-11-18 21:42:52.986468
返回一个datetime对象,表示当前的日期和时间(当前计算机的时钟),
UTC时间戳也可以转换成如上个格式:tmp2 = datetime.datetime.fromtimestamp(time.time()) print(tmp2) 结果是: 2018-11-18 21:44:45.624439
datetime对象可以用比较操作符进行比较,弄清楚谁在前面,谁在后面。
-
timedelta数据类型,表示一段时间,而不是一个时刻: datetime.timedelta()
接受关键字参数 weeks、days、hours、minutes、seconds、milliseconds 和 microseconds
因为月和年是可变的时间,所以不接收这两个关键字;delta = datetime.timedelta(days=11, hours=10, minutes=9, seconds=8) print(delta) sec = delta.total_seconds() print(sec) 结果: 11 days, 10:09:08 986948.0
返回格式良好,人类可读的字符串。total_seconds()返回这时间段的秒数。
计算一个日期之后的时间:dt =datetime.datetime.now() future = datetime.timedelta(days=1000) print(dt + future) 结果是: 2021-08-14 21:57:00.079643
-
利用time.sleep()暂停到一个特定的日期。
-
利用datetime.strftime()方法将datetime对象格式化为可读的字符串
oct = datetime.datetime(2015,10,21,16,29,0) print(oct) print(oct.strftime('%Y/%m/%d %H:%M:%S')) 结果: 2015-10-21 16:29:00 2015/10/21 16:29:00
-
将字符串换成datetime对象
datetime.datetime.striptime()函数,
回顾Python的时间函数
多线程
- 你可以使用 Python 的threading 模块,在单独的线程中执行延迟或安排的代码。
要得到单独的线程,首先要调用 threading.Thread()函数import threading, time print('Start of program.') def takeANap(): time.sleep(5) print('Wake up!') threadOdj = threading.Thread(target=takeANap) threadOdj.start() print("end of the program")
为了创建一个 Thread 对象,我们调用 threading.Thread(),并传入关键字参数 target=takeANap
注意是函数名,不加小括号的,加上就是调用函数了。 -
也可以向目标函数传递参数
常规参数可以作为一个列表,传递给 threading.Thread()中的 args 关键字参数。关键字参数可以作为一个字典,传递给threading.Thread()中的kwargs 关键字参数。 -
并发问题
多线程可以同时云心个,但是多线程可能会导致所谓的并发问题,即通过这些线程同时读写变量,并相互干扰,就会产生并发问题。
s所以:绝对不让多个线程读取和写入相同的变量,当创建一个Thread对象的时候,要确保其目标函数只使用该函数中的局部变量。
从Python启动其他程序
- 利用内建函数subprocess模块中的Popen()函数,Python程序可以启动计算机的其他程序,Popen()中的P表示的是进程:Process
import subprocess subprocess.Popen('C:\\Windows\\System32\\calc.exe') 打开计算器
poll()方法:是问是否执行完你给她的代码,如果这进程在poll()调用的是时候仍然在执行,poll方法就返回None,如果该程序已经终止,它会返回该进程的整数退出嗲吗。
wait()方法,就像是等着你的朋友执行完她的代码,然后继续执行你的代码,该方法是阻塞的,直到启动的进程终止。 -
webbrowser.open()函数可以从程序启动 Web 浏览器,打开指定的网站
-
可以在Python中启动另一个python脚本,就像启动其他应用程序一样。
subprocess.Popen(["python.exe位置", "hello.py"]) -
用默认的应用程序打开文件
subprocess.Popen(['start', 'hello.txt'], shell=True)
这是在windown上的操作,列表中第一个参数是start,如果是MAC,第一个参数是open