零基础 学 python开发 (Genius套餐A) 三十四

夜光序言:

 

 

成熟不是心在变老,是泪在打转还能微笑。

 

 

 

 

 

正文:

 

6.3 文件编码 
6.3.1 目标 


文件的本质是二进制文件,因此文本文件存储时实际上是通过某种编码转为二进制数据存储的,相同的文本采用不同的编码得到的二进制数据时不同的,这对于汉字的文本十分重要。

 

目标是深刻理解编码的本质,正确读写文本文件。

 

 



6.3.2 文件编码 


在中文 Windows 系统中如果我们不指定文本文件的编码,那么它采用系统默认的 GBK编码,即一个英文字符是 ASCII 码,一个汉字是两个字节的内码。


例 6-3-1: GBK 编码 


fobj=open("c:\\abc.txt","wt")
fobj.write("abc 我们")
fobj.close()
执行后 abc.txt 文件是 7 个字节,分别是:
0x61 0x62 0x63 0xce 0xd2 0xc3 0xc7
其中前 3 个是 abc 字符,0xce,0xd2 这 2 个字节是汉字"我"的内码,0xc3,0xc7 这 2 个字节是汉字"们"的内码。

 


例 6-3-2:UTF-8 编码 


如果我们不使用默认的编码,可以在 open 函数中用 encoding 参数指定编码。
fobj=open("c:\\abc.txt","wt",encoding="utf-8")
fobj.write("abc 我们")
fobj.close()
执行后 abc.txt 文件是 9 个字节,分别是:
0x61 0x62 0x63 0xe6 0x88 0x91 0xe4 0xbb 0xac
其中前 3 个是 abc 字符,0xe6, 0x88, 0x91 这 3 个字节是汉字"我"的 UTF-8 编码,0xe4,0xbb ,0xac 这 3 个字节是汉字"们"的 UTF-8 编码。

文件如果是用 GBK 编码存储的,就一定使用 GBK 编码打开读取,不能使用 UTF-8 编码打开读取,反之亦然。

 


6.3.3 【案例】UTF-8 文件编码 


1、案例描述 
用 UTF-8 编码存储文本文件,再用相同编码读取文件。
 
2、案例分析 
要文件按指定的 UTF-8 编码存储,必须在创建文件时指定 encoding:
 fobj = open("c:\\abc.txt", "wt",encoding="utf-8")
要文件按指定的 UTF-8 编码读取,必须在打开文件时指定 encoding:
 fobj = open("c:\\abc.txt", "rt",encoding="utf-8")
 
3、案例代码 

def writeFile():
 fobj = open("c:\\abc.txt", "wt",encoding="utf-8")
 fobj.write("abc 我们")
 fobj.close()
def readFile():
 fobj = open("c:\\abc.txt", "rt")
 rows=fobj.readlines()
 for row in rows:
 print(row)
try:
 writeFile()
 readFile()
except Exception as err:
 print(err)
执行结果:
abc 鎴戜滑
由此可见编码不匹配会出现乱码,如果把 readFile 函数改成:
def readFile():
 fobj = open("c:\\abc.txt", "rt",encoding="utf-8")
 rows=fobj.readlines()
 for row in rows:
 print(row)
那么可以正确读出文件内容。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值