🌞欢迎来到机器学习的世界
🌈博客主页:卿云阁💌欢迎关注🎉点赞👍收藏⭐️留言📝
🌟本文由卿云阁原创!
🌠本阶段属于练气阶段,希望各位仙友顺利完成突破
📆首发时间:🌹2021年4月5日🌹
✉️希望可以和大家一起完成进阶之路!
🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
🍈 一、不同字符编码间的转换 windows 系统的默认编码是 GBK, 如果你把⼀段在 windows 系统上⽤ gbk 编码的字符发 送到 mac 电脑 上, mac 默认编码是 utf-8, 那这段⽂字是乱码显示的。 如何实现在 mac 上正常显示这段 gbk文本呢?编码与解码
1.把任意编码转换成unicode的过程叫做解码
>>> s="卿云" >>> s="卿云"#unicode格式 >>> s.encode("utf-8") #将其编码成utf-8 b'\xe5\x8d\xbf\xe4\xba\x91'
2.把unicode转换成的任意编码过程叫做编码
>>> s '卿云' >>> s.encode("utf-8").decode("utf-8")#把utf-8编码的字符在转化成unicode '卿云'
3.
>>> s '卿云' >>> s.encode("utf-8") #将其编码成utf-8 b'\xe5\x8d\xbf\xe4\xba\x91 #会变成bytes字节格式,bytes字节类型是用16进制表示的,像\xe5这样两个16进制数是代表一个字节(因为一个16进制数占4位)
字节类型到底是什么
字节类型其实就是二进制数,只不过为了易于理解,常用16进制数表示。
🍉二. 文件 *** 作用Python *** 作文件也不多
f=open(filename) #打开文件 f.write("我叫卿云") #写文件 f.read() #读文件 f.close() #保存并关闭
文件打开模式
r 只读模式 w 创建模式,若⽂件已存在,则覆盖旧⽂件 a 追加模式,新数据会写到⽂件末尾创建文件
f=open(file='C:/Users/Administrator/Desktop/zz.txt',mode='w') #在文件夹中复制地址时,文件夹中的地址是用 \ 来分隔不同文件夹的,而Python识别地址时只能识别用 / 分隔的地址。 f.write("我叫卿云\n") #写文件 f.write("我喜欢打乒乓球\n") #写文件 f.write("我喜欢zqy\n") #写文件 f.close() #保存并关闭
只读模式
f=open(file='C:/Users/Administrator/Desktop/zz.txt',mode='r') print(f.readline())#读一行 print('-----分隔符-----') data=f.read() print(data) f.close() #保存并关闭 结果 卿云 202018081 -----分隔符----- 文竹 202018082 zxq 202018083
追加模式
f=open(file='C:/Users/Administrator/Desktop/zz.txt',mode='a') f.write("zz 202018085\n") f.close() #保存并关闭
循环文件
f = open(file='C:/Users/qingyun/Desktop/兼职⽩领学⽣空姐模特护⼠联系⽅式.txt',encoding="utf-8",mode='r') for line in f: line = line.split() name,addr,height,weight,phone = line height = int(height) weight = int(weight) if height > 170 and weight <= 50: # 只打印身⾼>170 and 体᯿<=50的 print(line) f.close() 结果 ['⻢纤⽻', '深圳', '173', '50', '13744234523'] ['罗梦⽵', '北京', '175', '49', '18623423421'] ['叶梓萱', '上海', '171', '49', '18042432324']
⼆进制模式 *** 作⽂件 上⾯ *** 作的只是⽂本⽂件 ,但是如果遇到视频呀、图⽚呀,你直接打开的话会报错 是因为, open() 有个 encoding 参数 , 默认是 None, 是⽤来告诉解释器,要 *** 作的这个⽂件 是什么编码。 不填的话,就⽤解释器默认编码,即utf-8 。 如果你是⼀个 gbk 编码的⽂件 ,就必须指定 encoding=gbkopen(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
但是像图⽚、视频,是有⾃⼰特殊的编码的,⽽⾮什么 unicode\utf-8 这样的⽂本编码 。 所以要 *** 作这 样的⽂件 ,你⽤ utf-8 什么的去解,⾃然会报错。 如何处理图⽚、视频⽂件呢? 可以⽤ 2 进制模式打开⽂件 rb 2 进制只读模式 wb 2 进制创建模式,若⽂件已存在,则覆盖旧⽂件 ab 2 进制追加模式,新数据会写到⽂件末尾 这样,你读出来的数据,就是 bytes 字节类型了,当然写进去的也必须是 bytes 格式了f = open("gbk_file",encoding="gbk") for line in f: print(line)
f = open("gbk_file2","wb") f.write("哈".encode("gbk") ) # 写⼊的⽂本要⽤字节类型
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)