国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mac中python讀取csv文件編碼報錯問題解決

paulli3 / 3208人閱讀

摘要:之前在寫一個簡單的分班程序的時候,使用如下命令行讀取文件出現了報錯含義為程序由于文件編碼問題無法讀取文件。該行聲明了該程序讀取文件的編碼格式為。如仍報錯,可使用方法二解決。第二種使用命令,修改后文件出現亂碼。

注:該文章基于mac環境。

之前在寫一個簡單的分班程序的時候,使用如下命令行讀取csv文件,

with open("city.csv") as f:
    lines = f.readlines()

出現了報錯:

‘utf-8’ codec can’t decode byte 0xb1 in position 0: invalid start byte

含義為程序由于文件編碼問題無法讀取文件。查找了一些解決方法后終于解決,稍稍總結。

出現此種問題的原因,可能來自python程序本身或文件。一是python文件可能沒有聲明讀取文件的編碼方式,導致程序無法讀取,對應解決方法一;二是文件本身的編碼不是utf-8格式,導致程序無法讀取,對應解決方法二。

解決方法一:在python文件中加入編碼方式聲明

在python文件開頭加入一行編碼方式聲明代碼,使用# -*- coding: utf-8 -*-#code=utf-8均可。該行聲明了該python程序讀取文件的編碼格式為utf-8。

如果是由于python程序出現的問題,此時再次運行程序,應不再報錯。如仍報錯,可使用方法二解決。

解決方法二:修改文件編碼方式/修改程序讀取方式

假設文件存放路徑為/Desktop/system_code/city.csv。打開終端(在應用程序搜索“terminal”),使用cd命令查看system_code文件夾并使用vim命令打開city.csv, 代碼如下:

$ cd Desktop/system_code/
$ vim city.csv

此時終端會顯示文件詳細內容。之后使用:set命令查看文件詳情:

可以看到第4行中fileencoding=latin1,說明此時文件編碼方式為latin1而非utf-8。

1.修改程序讀取文件時的編碼方式
如果只需要程序適應這一個文件的話,直接修改程序讀取文件的編碼方式即可,如下。

with open("city.csv", encoding="latin1") as f:
    lines = f.readlines()

2.修改文件編碼
有的時候程序需要讀取多個文件,而對文件本身就要求為utf-8的格式,這時候就只能修改文件編碼了。

之前在查找解決方式的時候看到了兩種,第一種使用iconv命令,修改成功。第二種使用vim命令,修改后文件出現亂碼。這里將兩種都列出。

2.1 使用iconv命令修改
命令為:

iconv -f gbk -t utf-8 origfilename > resultfilename

其中,-f后為源文件編碼,-t后為轉換后文件編碼,origfilename為需要轉碼的文件,resultfilename為保存至的文件。之前我嘗試了使用latin1進行轉碼,發現轉出后為亂碼,使用gbk則成功,不知道是不是因為文件內容為中文。

以我的文件為例,需要轉碼的文件為city_latin.csv, 希望將轉碼后文件保存為city_new.csv,則使用如下命令:

iconv -f gbk -t utf-8 city_latin.csv > city_new.csv

之后使用vim命令查看city_new.csv的編碼可看到city_new.csv為正常的utf-8編碼文件。

2.2 使用vim命令修改

注:此方式在我的電腦中轉換出現亂碼,因此不推薦。
:set fileencoding=utf-8

之后再次使用:set命令查看文件格式,可發現文件的編碼格式已經被修改為utf-8:

最后使用:wq命令寫入文件并退出vim即可。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42638.html

相關文章

  • Python3網絡爬蟲實戰---31、數據存儲:文件存儲

    摘要:如果該文件已存在,文件指針將會放在文件的結尾。運行結果以上是讀取文件的方法。為了輸出中文,我們還需要指定一個參數為,另外規定文件輸出的編碼。 上一篇文章:Python3網絡爬蟲實戰---30、解析庫的使用:PyQuery下一篇文章:Python3網絡爬蟲實戰---32、數據存儲:關系型數據庫存儲:MySQL 我們用解析器解析出數據之后,接下來的一步就是對數據進行存儲了,保存的形式可以...

    dreamans 評論0 收藏0
  • Python如何批量將csv文件編碼方式轉換為UTF-8?下面就給大家解答

      csv文件其實就是單純的儲存文本數據的一種形式,那么,在日常的辦公當中,要怎么做去提高其辦公的效率呢?比如,如何使用Python去批量的進行處理文件,批量的處理csv文件,怎么將編碼轉換成為YTF-8的形式呢?下面給大家詳細的解答下?! ‘斘覀冇胮andas是操作CSV文件的時候,常常會因為編碼問題出現報錯?! andas_libsparsers.pyx in pandas._libs.pa...

    89542767 評論0 收藏0
  • 一次爬蟲實踐記錄

    摘要:在和偉鋒探討的時候,我突然想到了可以用爬蟲的手段,來將數據中心的數據全部爬取出來。這里做一個技術記錄,中間涉及到的知識點包括如何通過中的,以及維持登陸狀態,以爬取不同的需要登陸以后才能查看的網頁。 前言說明: 公司在2017年3月的時候開發過一個「數據中心」,是將有贊的用戶和訂單信息通過API拉取到自己開發的網站上,再結合我們自己和用戶溝通的信息,組成一個簡單的用戶管理中心。數據中心雖...

    hzx 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<