91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Python將數據寫到CSV文件中的示例

發布時間:2021-02-08 15:32:58 來源:億速云 閱讀:178 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關利用Python將數據寫到CSV文件中的示例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

前言

我們從網上爬取數據,最后一步會考慮如何存儲數據。如果數據量不大,往往不會選擇存儲到數據庫,而是選擇存儲到文件中,例如文本文件、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 的讀寫操作。

Python csv模塊封裝了常用的功能,使用的簡單例子如下:

# 讀取csv文件
import csv
with open('some.csv', 'rb') as f: # 采用b的方式處理可以省去很多問題
reader = csv.reader(f)
for row in reader:
# do something with row, such as row[0],row[1]


import csv
with open('some.csv', 'wb') as f: # 采用b的方式處理可以省去很多問題
writer = csv.writer(f)
writer.writerows(someiterable)

具體使用實例如下:

import csv
import codecs
# codecs 是自然語言編碼轉換模塊

fileName = 'PythonBook.csv'

# 指定編碼為 utf-8, 避免寫 csv 文件出現中文亂碼
with codecs.open(fileName, 'w', 'utf-8') as csvfile:
 # 指定 csv 文件的頭部顯示項
 filednames = ['書名', '作者']
 writer = csv.DictWriter(csvfile, fieldnames=filednames)

 books = []
 book = {
 'title': '笑傲江湖',
 'author': '金庸',
 }
 books.append(book)

 writer.writeheader()
 for book in books:
 try:
 writer.writerow({'書名':book['title'], '作者':book['author']})
 except UnicodeEncodeError:
 print("編碼錯誤, 該數據無法寫到文件中, 直接忽略該數據")

這種方式是逐行往 CSV 文件中寫數據, 所以效率會比較低。如果想批量將數據寫到 CSV 文件中,需要用到 pandas 庫。

pandas 是第三方庫,所以使用之前需要安裝。通過 pip 方式安裝是最簡單、最方便的。
pip install pandas

使用 pandas 批量寫數據的用法如下:

import pandas as pd

fileName = 'PythonBook.csv'
number = 1

books = []
book = {
 'title': '笑傲江湖',
 'author': '金庸',
}
# 如果 book 條數足夠多的話,pandas 會每次往文件中寫 50 條數據。
books.append(book)

data = pd.DataFrame(books)
# 寫入csv文件,'a+'是追加模式
try:
 if number == 1:
 csv_headers = ['書名', '作者']
 data.to_csv(fileName, header=csv_headers, index=False, mode='a+', encoding='utf-8')
 else:
 data.to_csv('fileName, header=False, index=False, mode='a+', encoding='utf-8')
 number = number + 1
except UnicodeEncodeError:
 print("編碼錯誤, 該數據無法寫到文件中, 直接忽略該數據")

感謝各位的閱讀!關于“利用Python將數據寫到CSV文件中的示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文山县| 九龙坡区| 东兰县| 富川| 广南县| 新野县| 出国| 新密市| 肇东市| 定远县| 南和县| 晋宁县| 潜山县| 申扎县| 新巴尔虎左旗| 澄迈县| 永州市| 宝鸡市| 平山县| 蒙山县| 罗江县| 府谷县| 荔波县| 石河子市| 牡丹江市| 塔河县| 英吉沙县| 嘉黎县| 泰顺县| 定远县| 海晏县| 长岛县| 广宗县| 通海县| 抚顺市| 阿勒泰市| 义乌市| 剑阁县| 板桥市| 新乐市| 中牟县|