python3默认编码方式,python3默认的字符编码和文件编码
做一个测试脚本,从文件夹A遍历所有的。文本文件(文本文件)格式文件,并打开文件逐行读取内容,写入到文件夹B里面。我们看读和写文件格式在是否指定为UTF-8时会发生什么错误。新建6个文件,汉字内容是"你好!",英文字符是你好
代码如下
# coding=utf-8 # coding=gbk import OS RootDir=R e:\ 02 _ python tools \ Fold-2 \ A \ TargetDir=R e:\ 02 _ python tools \ Fold-2 \ B \ def mkdir(path):path=path。strip()path=path。rst rip( \ )是exists=OS。路径。exists(路径)如果不存在is exists:OS。makedirs(path)def del _ file(path):ls=OS。ls:cfile path _ new=TargetDir \ \ 文件路径中I的listdir(path)。split(:)[-1]mkdir(文件路径_新)* * fr=open(_ fs[I], r )fw=open(文件路径_新 \ \ 文件名 _ TT , w )* * s=是 print(_ fs[I])while s!= :s=fr。readline()# s . decode( utf8 , ignore )fw。写入行fr。关闭()前进。关闭()不指定文件编码格式fr=open(_fs[i], r )fw=open(文件路径_新 \ \ 文件名 _ TT , w )运行错误:UTF-8汉字读错误
仅指定读文件格式为UTF-8 fr=open(_fs[i], r ,encoding= utf-8 )fw=open(文件路径_新 \ \ 文件名 _ TT , w )运行错误:UTF-8乱码写错误
3.指定读写文件格式都为UTF-8
fr=open(_fs[i], r ,encoding=utf-8 )fw=open(文件路径_ new \ \ 文件名 _ TT , w ,encoding=utf-8 )运行错误:ANSI格式汉字读错误
测试结果:
对于纯英文文本文件,无论文件本身是什么格式,py也不需指定读写格式,都能正确处理当文件本身是UTF-8格式,且巴拉圭指定读写格式都为UTF-8时,无论文件内容是英文,汉字,还是乱码都能正确读写无论文件是什么格式,当巴拉圭指定读格式为UTF-8时,无论文件内容是英文,汉字,都能正确读出。总结:
用计算机编程语言读文本文件或写一个新的文本文件时,应该指定为UTF-8格式。用计算机编程语言读非UTF-8格式的文本文件前,应该先转换成UTF-8格式。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。