python新手一枚,最近在试着用python读写复制中文txt文件,记录下自己的解决方法。
文章一共分为2个部分,1.如何用Python读取中文txt文件,2.如何用Python(复制)写入中文txt文件
前提声明:
txt文本为utf-8格式的中文文件
Python为3.6版本,Windows环境运行,装的是Anaconda
1.如何用Python读取中文文件?
在open函数末端加一个encoding声明就好了,encoding声明里用的编码是文本自己本身所用的编码,代码如图
inpute = open(copy_file,encoding= 'utf-8')
data = inpute.read()
如果你家文件是用gbk方式编码的话,那么把上述的utf-8该文gbk就好
txt文件的编码可以直接看
楼主所遇到的文件读取问题,就这样被解决了。
其它情况暂无,所以自己就没有试~如果有情况,以后再更
2.如何用Python(复制)写入中文txt文件?
在这里,你可以选择2种不同的解决方法
方法一:定义声明好编码格式
首先你要做的,是在打开写入文件时,声明encoding编码
put_in = open(becopyed_file,"w+",encoding= 'utf-8')
之后,在写入文件的时候设置好编码方式,先用encode编码,再用decode解码文件
put_in.write(str(data.encode('utf-8').decode('utf-8')))
这样的话,之后输出的文件格式,就会是之前那原模原样的中文txt了
方法二:利用codecs模块
先进行导入
import codecs
之后在打开文件的时候,在open函数前设置好codecs命令
f = codecs.open(becopyed_file,"w+",encoding= 'utf-8')
最后写入文件就好了
f.write(content)
这样的方法,也能解决写入中文txt文件的问题,不过文件里的格式会乱掉
比如,原来有空格,有分段的地方,在用codecs模块后,只会变成没分段没空行的一个整体,有强迫症的同学要额外注意下
用这两种方法,就能圆满解决txt文件编码的一部分问题啦~
欢迎交流你在学习python中遇到的问题哦