python新手一枚,最近在試著用python讀寫復(fù)制中文txt文件雌桑,記錄下自己的解決方法喇喉。
文章一共分為2個(gè)部分,1.如何用Python讀取中文txt文件校坑,2.如何用Python(復(fù)制)寫入中文txt文件
前提聲明:
txt文本為utf-8格式的中文文件
Python為3.6版本拣技,Windows環(huán)境運(yùn)行,裝的是Anaconda
1.如何用Python讀取中文文件耍目?
在open函數(shù)末端加一個(gè)encoding聲明就好了膏斤,encoding聲明里用的編碼是文本自己本身所用的編碼,代碼如圖
inpute = open(copy_file,encoding= 'utf-8')
data = inpute.read()
如果你家文件是用gbk方式編碼的話邪驮,那么把上述的utf-8該文gbk就好
txt文件的編碼可以直接看
樓主所遇到的文件讀取問題莫辨,就這樣被解決了。
其它情況暫無毅访,所以自己就沒有試~如果有情況沮榜,以后再更
2.如何用Python(復(fù)制)寫入中文txt文件?
在這里喻粹,你可以選擇2種不同的解決方法
方法一:定義聲明好編碼格式
首先你要做的蟆融,是在打開寫入文件時(shí),聲明encoding編碼
put_in = open(becopyed_file,"w+",encoding= 'utf-8')
之后守呜,在寫入文件的時(shí)候設(shè)置好編碼方式型酥,先用encode編碼,再用decode解碼文件
put_in.write(str(data.encode('utf-8').decode('utf-8')))
這樣的話查乒,之后輸出的文件格式弥喉,就會(huì)是之前那原模原樣的中文txt了
方法二:利用codecs模塊
先進(jìn)行導(dǎo)入
import codecs
之后在打開文件的時(shí)候,在open函數(shù)前設(shè)置好codecs命令
f = codecs.open(becopyed_file,"w+",encoding= 'utf-8')
最后寫入文件就好了
f.write(content)
這樣的方法玛迄,也能解決寫入中文txt文件的問題档桃,不過文件里的格式會(huì)亂掉
比如,原來有空格憔晒,有分段的地方藻肄,在用codecs模塊后蔑舞,只會(huì)變成沒分段沒空行的一個(gè)整體,有強(qiáng)迫癥的同學(xué)要額外注意下
用這兩種方法嘹屯,就能圓滿解決txt文件編碼的一部分問題啦~
歡迎交流你在學(xué)習(xí)python中遇到的問題哦