原来你竟然是这样的txt?
總第134篇/張俊紅
1.前言
經(jīng)常有同學問我,老師為啥同樣的格式的兩個文件我用同樣的方法導入到Python里面,一個可以正常導入,一個卻會報錯,這是為什么呢?你應該也有遇到過這種情況,就是表面相同的文件,文件名完全相同,格式完全相同(至少肉眼看上去是),而且里面的內(nèi)容也是一樣的,但是你用同樣的代碼卻不能打開每一個文件。
memberinfo.txt
memberinfo.txt
memberinfo.txt
memberinfo.txt
我們本篇就來講講這是為什么?
2.生成txt文件
要弄懂為什么會出現(xiàn)上面那種看起來完全一樣的文件,但實際上卻不能用同樣的代碼打開每一個文件的原因,我們首先看看這些看起來完全一樣的文件是如何生成的。
主要是利用Excel中另存為格式,進行txt文件的生成。
2.1生成文本文件
將Excel文件另存為文本文件(制表符分隔(*.txt))格式的文件,這樣就生成第一個memberinfo.txt文件。
2.2生成Unicode文本
將Excel文件另存為Unicode文本(*.txt)格式的文件,這樣就生成了第二個memberinfo.txt文件。
2.3生成CSV文件
先將Excel文件另存為CSV(逗號分隔)(*csv)格式的文件memberinfo.csv,然后直接將文件名強制更改成memberinfo.txt,這樣就生成第三個memberinfo.txt文件了。
2.4生成CSV UTF-8文件
先將Excel文件另存為CSV UTF-8(逗號分隔)(*csv)格式的文件memberinfo.csv,然后直接將文件名強制更改成memberinfo.txt,這樣就生成第四個memberinfo.txt文件了。
這樣大家就知道了為什么表面上看起來一樣的文件,卻不能用同樣的代碼打開,主要是因為生成的方式(內(nèi)部存儲格式)是不一樣的。
3.導入文件
我們主要講述一下如何用Python導入這四種不同格式的txt文件。
3.1導入文本文件
因為文本文件是用制表符(\t)進行分隔的,所以我們在read_table的時候令sep = '\t'即可。
df?=?pd.read_table(r"C:\Users\Desktop\memberinfo.txt",sep="\t",engine?=?"python",encoding="gbk")3.2導入Unicode文本
因為Pandas不支持讀寫unicode和ascii編碼方式的文件和數(shù)據(jù),所以要讀寫這兩類文件時,需要先將文件格式轉(zhuǎn)換成Pandas支持的utf-8或者gbk格式,更改方式如下:
step1:打開txt文件,選擇另存為,我們可以看到紅框部分的編碼格式是Unicode。
第一步打開txt文件step2:將文件編碼格式修改為utf-8。
第二步修改txt文件編碼格式
這樣就可以進行正常導入了,只需要將上述的encoding從gbk改成utf-8就可以。
df?=?pd.read_table(r"C:\Users\Desktop\memberinfo.txt",sep="\t",engine?=?"python",encoding="gbk")3.3導入CSV文件
因為這個txt文件是直接將CSV文件格式進行更改的,文件格式和CVS文件格式一致,逗號分隔(sep=","),gbk編碼(encoding="gbk"),所以,導入txt文件時也需要遵循這樣的格式。
df?=?pd.read_table(r"C:\Users\Desktop\memberinfo.txt",sep=",",engine?=?"python",encoding="gbk")3.4導入CSV UTF-8文件
這個文件和上面的CSV文件唯一不同的就是編碼格式不同,這個編碼格式是utf-8,所以導入的時候只需要在CSV文件的基礎上改一下編碼格式即可。
df?=?pd.read_table(r"C:\Users\Desktop\memberinfo.txt",sep=",",engine?=?"python",encoding="utf-8")現(xiàn)在你應該很清楚txt外表一樣,內(nèi)心不一樣的原因了吧。
昨晚做了一場直播分享,講了講我在寫『對比Excel,輕松學習Python數(shù)據(jù)分析』這本書過程中的一些心路歷程。只有充分了解這本書的一個背景,你才能更好的理解本書,從而利用好本書。點擊閱讀原文即可報名學習。因為免費時間已過,如果你已經(jīng)購買書,私聊我給你免費開通,不需要付費的哦。
總結(jié)
以上是生活随笔為你收集整理的原来你竟然是这样的txt?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv矩阵运算(一)
- 下一篇: DataFrame表样式设置(一)