精易论坛

标题: python读写文本老是报错?codecs模块 一行代码搞定py字符读写 [打印本页]

作者: gooddxv2015    时间: 2021-10-17 11:26
标题: 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下载哦
[Python] 纯文本查看 复制代码
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#抛出异常





感觉有用,喜欢的就给个赏呗!



作者: gooddxv2015    时间: 2021-10-17 12:12
第1次用python代码行发贴子,代码从Sub复制的,一个Tab"空格",竟然变成8个空格键的"空格",
我也是无话可说

作者: lcylcyll    时间: 2021-10-24 11:16
好东西正想着怎么解决呢




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4