当前位置: 首页 > news >正文

建设部网站王尚春公司介绍模板图片

建设部网站王尚春,公司介绍模板图片,设置备份管理wordpress,中企动力邮箱登陆首页文章目录 一、文件读写1. 读文件2. 二进制文件3. 字符编码4. 写文件 二、StringIO和BytesIO三、操作文件和目录1. 操作系统命令2. 操作文件 四、序列化五、 JSON六、异步IO1. 协程2. asyncioasync/awaitaiohttp 一、文件读写 Python内置了读写文件的函数#xff0c;用法和C是… 文章目录 一、文件读写1. 读文件2. 二进制文件3. 字符编码4. 写文件 二、StringIO和BytesIO三、操作文件和目录1. 操作系统命令2. 操作文件 四、序列化五、 JSON六、异步IO1. 协程2. asyncioasync/awaitaiohttp 一、文件读写 Python内置了读写文件的函数用法和C是兼容的。 1. 读文件 使用Python内置的open()函数传入文件名和标示符 f open(/Users/michael/test.txt, r)标示符’r’表示读这样我们就成功地打开了一个文件。如果文件不存在open()函数就会抛出一个IOError的错误. 调用read()方法可以一次读取文件的全部内容 f.read() Hello, world!调用close()方法关闭文件 f.close()Python引入了with语句来自动帮我们调用close()方法 with open(/path/to/file, r) as f:print(f.read())调用read()会一次性读取文件的全部内容 调用read(size)方法每次最多读取size个字节的内容 调用readline()可以每次读取一行内容 调用readlines()一次读取所有内容并按行返回list 2. 二进制文件 要读取二进制文件比如图片、视频等等用’rb’模式打开文件 f open(/Users/michael/test.jpg, rb)f.read() b\xff\xd8\xff\xe1\x00\x18Exif\x00\x00... # 十六进制表示的字节3. 字符编码 读取非UTF-8编码的文本文件需要给open()函数传入encoding参数 f open(/Users/michael/gbk.txt, r, encodinggbk)f.read() 测试遇到编码错误忽略 f open(/Users/michael/gbk.txt, r, encodinggbk, errorsignore)4. 写文件 写文件和读文件是一样的唯一区别是调用open()函数时传入标识符’w’或者’wb’表示写文本文件或写二进制文件 with open(/Users/michael/test.txt, w) as f:f.write(Hello, world!)f.close()二、StringIO和BytesIO StringIO 在内存中读写str from io import StringIOf StringIO()f.write(hello) 5f.write( ) 1f.write(world!) 6print(f.getvalue()) hello world!BytesIO 操作二进制数据 from io import BytesIOf BytesIO()f.write(中文.encode(utf-8)) 6print(f.getvalue()) b\xe4\xb8\xad\xe6\x96\x87三、操作文件和目录 1. 操作系统命令 import osos.name # 操作系统类型 posix如果是posix说明系统是Linux、Unix或Mac OS X如果是nt就是Windows系统。 在操作系统中定义的环境变量全部保存在os.environ这个变量中 2. 操作文件 # 查看当前目录的绝对路径:os.path.abspath(.) /Users/michael # 在某个目录下创建一个新目录首先把新目录的完整路径表示出来:os.path.join(/Users/michael, testdir) /Users/michael/testdir # 然后创建一个目录:os.mkdir(/Users/michael/testdir) # 删掉一个目录:os.rmdir(/Users/michael/testdir) # 对文件重命名:os.rename(test.txt, test.py) # 删掉文件:os.remove(test.py)把两个路径合成一个时不要直接拼字符串而要通过os.path.join()函数 part-1/part-2要拆分路径时也不要直接去拆字符串而要通过os.path.split()函数 os.path.splitext(/path/to/file.txt) (/path/to/file, .txt)四、序列化 Python提供了pickle模块来实现序列化。 序列化 import pickled dict(nameBob, age20, score88)pickle.dumps(d) b\x80\x03}q\x00(X\x03\x00\x00\x00ageq\x01K\x14X\x05\x00\x00\x00scoreq\x02KXX\x04\x00\x00\x00nameq\x03X\x03\x00\x00\x00Bobq\x04u.pickle.dump()直接把对象序列化后写入一个file-like Object f open(dump.txt, wb)pickle.dump(d, f)f.close()反序列化 要把对象从磁盘读到内存时可以先把内容读到一个bytes然后用pickle.loads()方法反序列化出对象也可以直接用pickle.load()方法从一个file-like Object中直接反序列化出对象。 f open(dump.txt, rb)d pickle.load(f)f.close()d {age: 20, score: 88, name: Bob}五、 JSON JSON和Python内置的数据类型对应 JSON类型Python类型{}dict[]list“string”str1234.56int或floattrue/falseTrue/FalsenullNone Python对象到JSON格式的转换 import jsond dict(nameBob, age20, score88)json.dumps(d) {age: 20, score: 88, name: Bob}JSON反序列化为Python对象 json_str {age: 20, score: 88, name: Bob}json.loads(json_str) {age: 20, score: 88, name: Bob}类序列化 需要为Student专门写一个转换函数再把函数传进去 def student2dict(std):return {name: std.name,age: std.age,score: std.score}import jsonclass Student(object):def __init__(self, name, age, score):self.name nameself.age ageself.score scores Student(Bob, 20, 88) print(json.dumps(s, defaultstudent2dict)) {age: 20, name: Bob, score: 88}六、异步IO 1. 协程 协程又称微线程纤程。英文名Coroutine。协程的特点在于是一个线程执行 多线程比协程有何优势 协程极高的执行效率。因为子程序切换不是线程切换而是由程序自身控制因此没有线程切换的开销和多线程比线程数量越多协程的性能优势就越明显。不需要多线程的锁机制因为只有一个线程也不存在同时写变量冲突在协程中控制共享资源不加锁只需要判断状态就好了所以执行效率比多线程高很多。 Python对协程的支持是通过generator实现的。 协程生产者生产消息后直接通过yield跳转到消费者开始执行待消费者执行完毕后切换回生产者继续生产效率极高 def consumer():r while True:n yield rif not n:returnprint([CONSUMER] Consuming %s... % n)r 200 OKdef produce(c):c.send(None)n 0while n 5:n n 1print([PRODUCER] Producing %s... % n)r c.send(n)print([PRODUCER] Consumer return: %s % r)c.close()c consumer() produce(c)结果 [PRODUCER] Producing 1... [CONSUMER] Consuming 1... [PRODUCER] Consumer return: 200 OK [PRODUCER] Producing 2... [CONSUMER] Consuming 2... [PRODUCER] Consumer return: 200 OK [PRODUCER] Producing 3... [CONSUMER] Consuming 3... [PRODUCER] Consumer return: 200 OK [PRODUCER] Producing 4... [CONSUMER] Consuming 4... [PRODUCER] Consumer return: 200 OK [PRODUCER] Producing 5... [CONSUMER] Consuming 5... [PRODUCER] Consumer return: 200 OK注意到consumer函数是一个generator把一个consumer传入produce后 首先调用c.send(None)启动生成器然后一旦生产了东西通过c.send(n)切换到consumer执行consumer通过yield拿到消息处理又通过yield把结果传回produce拿到consumer处理的结果继续生产下一条消息produce决定不生产了通过c.close()关闭consumer整个过程结束。 整个流程无锁由一个线程执行produce和consumer协作完成任务所以称为“协程”而非线程的抢占式多任务。 2. asyncio 用asyncio的异步网络连接来获取sina、sohu和163的网站首页 import asyncioasyncio.coroutine def wget(host):print(wget %s... % host)connect asyncio.open_connection(host, 80)reader, writer yield from connectheader GET / HTTP/1.0\r\nHost: %s\r\n\r\n % hostwriter.write(header.encode(utf-8))yield from writer.drain()while True:line yield from reader.readline()if line b\r\n:breakprint(%s header %s % (host, line.decode(utf-8).rstrip()))# Ignore the body, close the socketwriter.close()loop asyncio.get_event_loop() tasks [wget(host) for host in [www.sina.com.cn, www.sohu.com, www.163.com]] loop.run_until_complete(asyncio.wait(tasks)) loop.close()结果 wget www.sohu.com... wget www.sina.com.cn... wget www.163.com... (等待一段时间) (打印出sohu的header) www.sohu.com header HTTP/1.1 200 OK www.sohu.com header Content-Type: text/html ... (打印出sina的header) www.sina.com.cn header HTTP/1.1 200 OK www.sina.com.cn header Date: Wed, 20 May 2015 04:56:33 GMT ... (打印出163的header) www.163.com header HTTP/1.0 302 Moved Temporarily www.163.com header Server: Cdn Cache Server V2.0 ...async/await async和await是针对coroutine的新语法要使用新的语法只需要做两步简单的替换 把asyncio.coroutine替换为async 把yield from替换为await。 aiohttp asyncio实现了TCP、UDP、SSL等协议aiohttp则是基于asyncio实现的HTTP框架。 安装aiohttp pip3 install aiohttp然后编写一个HTTP服务器分别处理以下URL / - 首页返回b’Index /hello/{name} - 根据URL参数返回文本hello, %s!。 代码如下 import asynciofrom aiohttp import webasync def index(request):await asyncio.sleep(0.5)return web.Response(bodybh1Index/h1)async def hello(request):await asyncio.sleep(0.5)text h1hello, %s!/h1 % request.match_info[name]return web.Response(bodytext.encode(utf-8))async def init(loop):app web.Application(looploop)app.router.add_route(GET, /, index)app.router.add_route(GET, /hello/{name}, hello)srv await loop.create_server(app.make_handler(), 127.0.0.1, 8000)print(Server started at http://127.0.0.1:8000...)return srvloop asyncio.get_event_loop() loop.run_until_complete(init(loop)) loop.run_forever()注意aiohttp的初始化函数init()也是一个coroutineloop.create_server()则利用asyncio创建TCP服务。
文章转载自:
http://www.morning.qztdz.cn.gov.cn.qztdz.cn
http://www.morning.ygmw.cn.gov.cn.ygmw.cn
http://www.morning.wrtw.cn.gov.cn.wrtw.cn
http://www.morning.wqkzf.cn.gov.cn.wqkzf.cn
http://www.morning.gnwpg.cn.gov.cn.gnwpg.cn
http://www.morning.rkwwy.cn.gov.cn.rkwwy.cn
http://www.morning.kxwsn.cn.gov.cn.kxwsn.cn
http://www.morning.wjlkz.cn.gov.cn.wjlkz.cn
http://www.morning.kysport1102.cn.gov.cn.kysport1102.cn
http://www.morning.dqbpf.cn.gov.cn.dqbpf.cn
http://www.morning.yhpq.cn.gov.cn.yhpq.cn
http://www.morning.cljpz.cn.gov.cn.cljpz.cn
http://www.morning.btqqh.cn.gov.cn.btqqh.cn
http://www.morning.thpzn.cn.gov.cn.thpzn.cn
http://www.morning.lqznq.cn.gov.cn.lqznq.cn
http://www.morning.bqqzg.cn.gov.cn.bqqzg.cn
http://www.morning.brkrt.cn.gov.cn.brkrt.cn
http://www.morning.ejknty.cn.gov.cn.ejknty.cn
http://www.morning.yydzk.cn.gov.cn.yydzk.cn
http://www.morning.bnylg.cn.gov.cn.bnylg.cn
http://www.morning.hblkq.cn.gov.cn.hblkq.cn
http://www.morning.fqsxf.cn.gov.cn.fqsxf.cn
http://www.morning.rqlf.cn.gov.cn.rqlf.cn
http://www.morning.fzlk.cn.gov.cn.fzlk.cn
http://www.morning.jcxqc.cn.gov.cn.jcxqc.cn
http://www.morning.xqkcs.cn.gov.cn.xqkcs.cn
http://www.morning.hqllj.cn.gov.cn.hqllj.cn
http://www.morning.bnbtp.cn.gov.cn.bnbtp.cn
http://www.morning.wnhgb.cn.gov.cn.wnhgb.cn
http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn
http://www.morning.ccsdx.cn.gov.cn.ccsdx.cn
http://www.morning.rgnp.cn.gov.cn.rgnp.cn
http://www.morning.crdtx.cn.gov.cn.crdtx.cn
http://www.morning.bmhc.cn.gov.cn.bmhc.cn
http://www.morning.drpbc.cn.gov.cn.drpbc.cn
http://www.morning.hytqt.cn.gov.cn.hytqt.cn
http://www.morning.qnbsx.cn.gov.cn.qnbsx.cn
http://www.morning.rhfbl.cn.gov.cn.rhfbl.cn
http://www.morning.nppml.cn.gov.cn.nppml.cn
http://www.morning.jhxdj.cn.gov.cn.jhxdj.cn
http://www.morning.dnydy.cn.gov.cn.dnydy.cn
http://www.morning.yjdql.cn.gov.cn.yjdql.cn
http://www.morning.srbfz.cn.gov.cn.srbfz.cn
http://www.morning.chhhq.cn.gov.cn.chhhq.cn
http://www.morning.kqpq.cn.gov.cn.kqpq.cn
http://www.morning.drnfc.cn.gov.cn.drnfc.cn
http://www.morning.qfdyt.cn.gov.cn.qfdyt.cn
http://www.morning.mhfbf.cn.gov.cn.mhfbf.cn
http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn
http://www.morning.xdpjs.cn.gov.cn.xdpjs.cn
http://www.morning.mplld.cn.gov.cn.mplld.cn
http://www.morning.qpmwb.cn.gov.cn.qpmwb.cn
http://www.morning.msgnx.cn.gov.cn.msgnx.cn
http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn
http://www.morning.mhybs.cn.gov.cn.mhybs.cn
http://www.morning.jmmz.cn.gov.cn.jmmz.cn
http://www.morning.pbzlh.cn.gov.cn.pbzlh.cn
http://www.morning.zdhxm.com.gov.cn.zdhxm.com
http://www.morning.wsnjn.cn.gov.cn.wsnjn.cn
http://www.morning.ghwdm.cn.gov.cn.ghwdm.cn
http://www.morning.kcyxs.cn.gov.cn.kcyxs.cn
http://www.morning.rcttz.cn.gov.cn.rcttz.cn
http://www.morning.fzwf.cn.gov.cn.fzwf.cn
http://www.morning.fnjrh.cn.gov.cn.fnjrh.cn
http://www.morning.bpmtr.cn.gov.cn.bpmtr.cn
http://www.morning.mqmxg.cn.gov.cn.mqmxg.cn
http://www.morning.mfmx.cn.gov.cn.mfmx.cn
http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn
http://www.morning.wrbx.cn.gov.cn.wrbx.cn
http://www.morning.zwtp.cn.gov.cn.zwtp.cn
http://www.morning.gjlxn.cn.gov.cn.gjlxn.cn
http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn
http://www.morning.yppln.cn.gov.cn.yppln.cn
http://www.morning.nzzws.cn.gov.cn.nzzws.cn
http://www.morning.fnpmf.cn.gov.cn.fnpmf.cn
http://www.morning.dpjtn.cn.gov.cn.dpjtn.cn
http://www.morning.tnjkg.cn.gov.cn.tnjkg.cn
http://www.morning.ybmp.cn.gov.cn.ybmp.cn
http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn
http://www.morning.bqrd.cn.gov.cn.bqrd.cn
http://www.tj-hxxt.cn/news/235486.html

相关文章:

  • 开发微网站开网店卖什么好
  • 盐城网站建设包括哪些整合营销案例举例说明
  • 做设备租赁的网站如何在万网建设网站
  • 宿迁网络科技有限公司wordpress 优化速度
  • 网站的在线支付模块怎么做聚合猫网站建设
  • 邵阳网站网站建设网站开发人员没有按照设计开发
  • 怎么建设手机端网站网页加速器浏览器
  • 英语网站排名计算机网页制作题教程
  • 电商网站业务流程网站后台管理无法编辑
  • 软件开发平台搭建新余seo
  • asp网站gzip压缩扬中网站建设机构
  • 回老家做PHP网站电子政务门户网站建设代码
  • 在学做网站还不知道买什么好免费注册个网站
  • 建设网站是普通办公吗如何创建一个官网
  • 福田网站建设论文结论个人做网站设计
  • 网站建设必须配置建设部网站四库一平台
  • 浙江华企网站做的咋样便宜网站建设 优帮云
  • 关于做芯片类招聘的网站服务器IP做网址打开网站
  • 网站风格下载html编辑器的推荐
  • 免费网址导航网站建设网络营销课程总结
  • 专业制作企业网站万网网站备案证书
  • 学校网站维护怎么做建设银行网站上改手机号码
  • 专业的企业网站优化公司网站新开怎么做营销
  • 竭诚网络网站建设烟台h5响应式网站建设
  • 南谯区城乡建设局网站网站可以做动画轮播吗
  • 网站建设对接模版建设企业网银交易密码是什么
  • 临安建设工程规划公示网站网站建设服务合同要交印花税吗
  • 源码网站永久免费会员管理系统
  • wordpress 交流哈尔滨服务最好的网站优化公司
  • 广州市住宅建设发展有限公司网站阿里巴巴开店网站怎么做