1.time模块
让Python程序能读取系统时钟的当前时间。在time模块中,time.time()和time.sleep()函数是最有用的模块。
1.1time.time()
返回值是 Unix 纪元的那一刻与 time.time() 被调用的那一刻之间的秒数。
import time print(time.time())
运行结果
1553691989.450952
纪元时间戳可以用于剖析代码,也就是测量一段代码的运行时间。
import time def calc(): p = 1 for i in range(1,100000): p = p * i return p startTime = time.time() result = calc() endTime = time.time() print('The result is %s digit long.'%(len(str(result)))) print('运行时间为%s秒'%(endTime - startTime))
运行结果
The result is 456569 digit long.
运行时间为2.7055039405822754秒
1.2 time.sleep()
功能:让程序暂停
格式:time.sleep(1),其中()内为让程序暂停的时间
2.数字四舍五入
使用 round() 进行四舍五入
格式:round(x,y)
功能:x 是要进行四舍五入的数字,y 是小数点后几位,是一个可选值,默认情况下四舍五入为整数。
import time now = time.time() print("未四舍五入:",now) print("保留两位小数:",round(now,2))
运行结果
未四舍五入: 1553692777.910951
保留两位小数: 1553692777.91
3.datetime模块
datetime 模块有两个可以使用的数据类型: datetime 和 timedelta.
3.1关于 datetime.datetime()
格式:
datetime.datetime(2019, 3, 27, 21, 29, 0)
功能:
与 time.time() 显示时间戳不同,datetime.datetime() 表示具体的日期,其中的参数代表:年、月、日、时、分、秒。
其他:
- datetime.datetime.now():返回一个 datetime object, 它包含了当前时刻的各种 datetime 属性。
- datetime.datetime.fromtimestamp():接受一个时间戳,返回这个时间戳的 datetime 对象。
- 使用 strftime() 作用在一个 datetime 对象上,可以得到定制的格式化字符串。
- strptime() 的工作与 strftime() 的工作相反。
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2019, 3, 27, 21, 30, 43, 329479)
>>> dt = datetime.datetime(2015,10,21,16,29,0)
>>> dt
datetime.datetime(2015, 10, 21, 16, 29)
>>> dt.year,dt.month
(2015, 10)
>>> dt.minute
29
>>> datetime.datetime.fromtimestamp(1000000)
datetime.datetime(1970, 1, 12, 21, 46, 40)
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2019, 3, 27, 21, 29, 38, 529726)
3.2关于 datetime.timedelta()
格式:
delta =datetime.timedelta(days=11, hours=10, minutes=9 ,seconds=0)
功能:
它接受 microseconds, milliseconds, seconds, minutes, hours, days, weeks 作为参数,用于表示一段时间。
其他:
- 一个 datetime 对象将时间分别储存在天、秒、微妙中。
- delta.total_seconds() 这个方法返回这个时间段的总共的秒数。
- str(delta),返回一个比较易读的字符串。
- 通过‘+’,‘-’ 进行 datetime 对象和 timedelta 对象的运算
- 使用‘*’,’/‘可以是 timedelta 乘以或除以一个整数或浮点数。
举例:
>>> delta = datetime.timedelta(days = 11,hours = 10 ,minutes = 9,seconds=8) >>> delta.days 11 >>> delta.seconds 36548 >>> delta.hours Traceback (most recent call last): File "<pyshell#26>", line 1, in <module> delta.hours AttributeError: 'datetime.timedelta' object has no attribute 'hours' >>> delta.microseconds 0
delta = datetime.timedelta()
接受的关键字为:weeks days hours minutes seconds milliseconds microseconds
这些数字保存在days,seconds、microseconds
3.3暂停至特定时间
>>> import datetime
>>> import time
>>> hello2019 = datetime.datetime(2019,3,29,0,0,0)
>>> while datetime.datetime.now() < hello2019:
time.sleep(1)
3.4 将datetime对象转换为字符串
4. 多线程
多线程指的是一个程序能够同时进行多处代码。创建,使用一个新线程需要用到 threading 模块。
关于创建新的 Thread
格式: threadObj = threading.Thread(target=nameOfFunction)
功能:创建一个 Thread 对象,其中 target 为其参数,它的 value 是要执行的函数的名字。使用新的线程
格式:threadObj.start()
创建 Thread 对象时传入的参数
常规参数:args,数据类型为列表
关键字参数: kwargs, 数据类型为字典>>> import threading >>> threadObj = threading.Thread(target=print,args=['Cat','Dogs','Frogs'],kwargs={'sep':'&'}) >>> threadObj.start() Cat& >>> Dogs&Frogs
4.1 subprocess 模块
进程:
进程指的是一个应用程序的多个实例;进程之间相互独立,不能直接读写另一个进程的变量;一个进程可以包含多个线程。
使用 subprocess 模块中的 Popen() 函数,可以打开其他进程,即打开应用程序使用 subprocess.Popen() 打开其他应用程序
格式(在 Mac OS 上):subprocess.Popen(['open','/Application/Calculator.app/'])