使用 Python 將數據寫到 CSV 文件
題圖:by _seo_hanbit from Instagram
我們從網上爬取數據,最後一步會考慮如何存儲數據。如果數據量不大,往往不會選擇存儲到資料庫,而是選擇存儲到文件中,例如文本文件、CSV 文件、xls 文件等。因為文件具備攜帶方便、查閱直觀。
Python 作為膠水語言,搞定這些當然不在話下。但在寫數據過程中,經常因數據源中帶有中文漢字而報錯。最讓人頭皮發麻的編碼問題。
我先說下編碼相關的知識。編碼方式有很多種:UTF-8, GBK, ASCII 等。
ASCII 碼是美國在上個世紀 60 年代制定的一套字元編碼。主要是規範英語字元和二進位位之間的關係。英語辭彙組成簡單,由 26 個字母構成。使用一個位元組就能表示一個字母符號。外加各種符號,使用 128 個字元就滿足編碼要求。
不同國家有不同語言文字。同時,文字組成部分的數量相比英語字母要多很多。根據不完全統計,漢字的數量大約將近 10 萬個,日常所使用的漢字有 3000 個。顯然,ASCII 編碼無法滿足需求。所以漢字採用 GBK 編碼,使用兩個位元組表示一個漢字。簡體中文的編碼方式是 GBK2312。
那 UTF-8 又是什麼編碼?這要先說 Unicode 了。Unicode 目的是為了統一各種編碼。因為各國都各自的編碼方式。如果使用一種編碼編碼,使用另一種編碼解碼。這會造成出現亂碼的情況。當 Unicode 只是一個符號集,它只規定了符號的二進位代碼,卻沒有規定這個二進位代碼應該如何存儲。UTF-8 就是在互聯網上使用最廣的一種 Unicode 的實現方式。
因此,如果我們要寫數據到文件中,最好指定編碼形式為 UTF-8。
Python 標準庫中,有個名為csv的庫,專門處理 csv 的讀寫操作。具體使用實例如下:
這種方式是逐行往 CSV 文件中寫數據, 所以效率會比較低。如果想批量將數據寫到 CSV 文件中,需要用到pandas庫。
pandas 是第三方庫,所以使用之前需要安裝。通過 pip 方式安裝是最簡單、最方便的。
使用 pandas 批量寫數據的用法如下:
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※零基礎的人如何入門Python?Python難么?
※三種方式教你運行Python程序
TAG:Python |