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