栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python读写文本老是报错?codecs模块统一编码 一行代码搞定py字符读写

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python读写文本老是报错?codecs模块统一编码 一行代码搞定py字符读写

在python程序中,经常要用到字符文本的读和写。用py自带的 读read  写write,定义字符编码比较麻烦。
而用第三方 codecs 模块,在读写字符文本时,可以指定字符编码,就好用很多。
下面,我用 codecs 模块,自己编写了一个def函数。
调用读写函数,指定数据,可以用一行代码实现字符文本的读写功能。只读写 字符文本!

分享构建codecs读写函数的思路:1.读  2.写  ---->>方便读写时,编码一致,就不会报错

读:1)读的标识,2)文件路径,3)文件名,4)读的方式,5)读字符的编码
写:1)写的标识,2)文件路径,3)文件名,4)写的方式,5)写字符的编码


所以构建这个函数,需要指定输入4个参数,编码不修改就可以设定一个默认值
1.读写的标识(为整数0则读,其他任何数据都写 ——这个ok了,单独写0时,以"0"形式写入),
2-3.文件路径,文件名这个读写时指定。(注意文件名要带后缀名)
文件路径和文件名分开,是方便同目录读写,最开始定义一个目录后,直接调用目录,这样读写函数的代码不用显得很长。
4.读写方式:
"r"-只读,"rb"-只读-内容为二进制,
"a"-仅写-原文后面继续写,
"ab"-仅写-以二进制形式在原文后面继续写,
"w"-仅写-替换原文写,"wb"-仅写-以二进制形式替换原文写
5.编码:'utf-8',"gbk","gb2312","gb18030",utf-8可以存特殊字符,如"㘃"字等繁体字。gb18030 兼容 gbk gb2312。
编码定义成默认值,读写调用时,可不用输入,当要修改默认编码时,输入要修改的编码即可


OK!,使用说明介绍完成,下面直接上代码:
首先要先在py文件最上面引入模块,无模块的,自己pip下载哦

 

import codecs
def code_du_xie(qu,path,name,model,bianma="utf-8"):#读/写字符文本 函数

	if qu==0:#为整数0,则打开 读取文件
		#打开文件并读取
		w=codecs.open(path+name,model,bianma)#打开文件
		leirong=w.read()#读全部
		w.close()#关闭文件
		return(leirong)#返回参数

	else:#非整数0,都写字符到文件,下面if判断,非字符或数字,则报错出异常
		if isinstance(qu,str)==True or isinstance(qu,int)==True or isinstance(qu,float)==True:
			w=codecs.open(path+name,model,bianma)#打开文件
			w.write(qu)#写
			w.close()#关闭文件
			leirong="写入文件ok"		
			return(leirong)#返回参数

		else:#不是字符或数字,抛出异常
			ex=Exception("读写内容错误:详情函数:code_du_xie()")
			raise ex#抛出异常

#执行调用函数的示例:

mulu=r"E:\"#目录
ppp="这是测试写入的n"#要定的内容
xxe=code_du_xie(ppp,mulu,"测试写入文件.txt","a")
print(xxe)#打印写后的返回结果

dde=code_du_xie(0,mulu,"测试写入文件.txt","r")#读
print(dde)#打印读的内容

个人累积函数的记录之1 字符文本 读写

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329231.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号