IO编程
同步和异步的区别就在于是否等待IO执行的结果。
好比你去麦当劳点餐,你说“来个汉堡”,服务员告诉你,对不起,汉堡要现做,需要等5分钟,于是你站在收银台前面等了5分钟,拿到汉堡再去逛商场,这是同步IO。
你说“来个汉堡”,服务员告诉你,汉堡需要等5分钟,你可以先去逛商场,等做好了,我们再通知你,这样你可以立刻去干别的事情(逛商场),这是异步IO。
使用异步IO来编写程序性能会远远高于同步IO,但是异步IO的缺点是编程模型复杂。想想看,你得知道什么时候通知你“汉堡做好了”,而通知你的方法也各不相同。如果是服务员跑过来找到你,这是回调模式,如果服务员发短信通知你,你就得不停地检查手机,这是轮询模式。总之,异步IO的复杂度远远高于同步IO。
1.读文件
# 方法1
try:
f = open('/Users/bilibili/Desktop/pycode1/study2/test.txt', 'r')
print(f.read()) # 一次读取所有的内容
finally:
if f:
f.close()
# 方法2:with…open…默认模式为‘r’,只读模式
with open('/Users/bilibili/Desktop/pycode1/study2/test.txt', 'r') as f:
print(f.read(9)) # 读取九个字符,最后一个是\n
with open('/Users/bilibili/Desktop/pycode1/study2/test.txt', 'r') as f:
print(f.readlines()) # 按行读取,返回一个列表,列表的每一个元素是文件的每一行
with open('/Users/bilibili/Desktop/pycode1/study2/test.txt', '