成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Python將數(shù)據(jù)寫到CSV文件

大數(shù)據(jù) 后端
我們從網(wǎng)上爬取數(shù)據(jù),最后一步會考慮如何存儲數(shù)據(jù)。如果數(shù)據(jù)量不大,往往不會選擇存儲到數(shù)據(jù)庫,而是選擇存儲到文件中,例如文本文件、CSV 文件、xls 文件等。因為文件具備攜帶方便、查閱直觀。

我們從網(wǎng)上爬取數(shù)據(jù),***一步會考慮如何存儲數(shù)據(jù)。如果數(shù)據(jù)量不大,往往不會選擇存儲到數(shù)據(jù)庫,而是選擇存儲到文件中,例如文本文件、CSV 文件、xls 文件等。因為文件具備攜帶方便、查閱直觀。

用Python將數(shù)據(jù)寫到CSV文件

Python 作為膠水語言,搞定這些當然不在話下。但在寫數(shù)據(jù)過程中,經(jīng)常因數(shù)據(jù)源中帶有中文漢字而報錯。最讓人頭皮發(fā)麻的編碼問題。

我先說下編碼相關的知識。編碼方式有很多種:UTF-8, GBK, ASCII 等。

ASCII 碼是美國在上個世紀 60 年代制定的一套字符編碼。主要是規(guī)范英語字符和二進制位之間的關系。英語詞匯組成簡單,由 26 個字母構(gòu)成。使用一個字節(jié)就能表示一個字母符號。外加各種符號,使用 128 個字符就滿足編碼要求。

不同國家有不同語言文字。同時,文字組成部分的數(shù)量相比英語字母要多很多。根據(jù)不完全統(tǒng)計,漢字的數(shù)量大約將近 10 萬個,日常所使用的漢字有 3000 個。顯然,ASCII 編碼無法滿足需求。所以漢字采用 GBK 編碼,使用兩個字節(jié)表示一個漢字。簡體中文的編碼方式是 GBK2312。

那 UTF-8 又是什么編碼?這要先說 Unicode 了。Unicode 目的是為了統(tǒng)一各種編碼。因為各國都各自的編碼方式。如果使用一種編碼編碼,使用另一種編碼解碼。這會造成出現(xiàn)亂碼的情況。但 Unicode 只是一個符號集,它只規(guī)定了符號的二進制代碼,卻沒有規(guī)定這個二進制代碼應該如何存儲。UTF-8 就是在互聯(lián)網(wǎng)上使用最廣的一種 Unicode 的實現(xiàn)方式。

因此,如果我們要寫數(shù)據(jù)到文件中,***指定編碼形式為 UTF-8。

Python 標準庫中,有個名為 csv 的庫,專門處理 csv 的讀寫操作。具體使用實例如下:

  1. import csv 
  2. import codecs 
  3. # codecs 是自然語言編碼轉(zhuǎn)換模塊 
  4.  
  5. fileName = 'PythonBook.csv' 
  6.  
  7. # 指定編碼為 utf-8, 避免寫 csv 文件出現(xiàn)中文亂碼 
  8. with codecs.open(fileName, 'w''utf-8'as csvfile: 
  9.     # 指定 csv 文件的頭部顯示項 
  10.     filednames = ['書名''作者'
  11.     writer = csv.DictWriter(csvfile, fieldnames=filednames) 
  12.  
  13.     books = [] 
  14.     book = { 
  15.         'title''笑傲江湖'
  16.         'author''金庸'
  17.     } 
  18.     books.append(book) 
  19.  
  20.     writer.writeheader() 
  21.     for book in books: 
  22.         try: 
  23.             writer.writerow({'書名':book['title'], '作者':book['author']}) 
  24.         except UnicodeEncodeError: 
  25.             print("編碼錯誤, 該數(shù)據(jù)無法寫到文件中, 直接忽略該數(shù)據(jù)"

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

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

  1. pip install pandas 

使用 pandas 批量寫數(shù)據(jù)的用法如下:

  1. import pandas as pd 
  2.  
  3. fileName = 'PythonBook.csv' 
  4. number = 1 
  5.  
  6. books = [] 
  7. book = { 
  8.     'title''笑傲江湖'
  9.     'author''金庸'
  10. # 如果 book 條數(shù)足夠多的話,pandas 會每次往文件中寫 50 條數(shù)據(jù)。 
  11. books.append(book) 
  12.  
  13. data = pd.DataFrame(books) 
  14. # 寫入csv文件,'a+'是追加模式 
  15. try: 
  16.     if number == 1: 
  17.         csv_headers = ['書名''作者'
  18.         data.to_csv(fileName, header=csv_headers, index=False, mode='a+', encoding='utf-8'
  19.     else
  20.         data.to_csv('fileName, header=False, index=False, mode='a+', encoding='utf-8') 
  21.         number = number + 1 
  22. except UnicodeEncodeError: 
  23.     print("編碼錯誤, 該數(shù)據(jù)無法寫到文件中, 直接忽略該數(shù)據(jù)"

作者:極客猴,熱衷于 Python,目前擅長利用 Python 制作網(wǎng)絡爬蟲以及 Django 框架。

責任編輯:未麗燕 來源: Python中文社區(qū)
相關推薦

2015-10-29 14:28:05

Mysqlcsv導入

2025-01-08 08:39:10

Go語言CSV

2023-10-17 16:24:27

PythonCSV

2023-11-13 18:37:44

2011-07-18 17:16:14

CSVPLSQLDevelope

2024-06-24 13:35:48

2024-04-28 11:39:17

紹csvkit數(shù)據(jù)分析

2023-12-12 08:31:04

文件操作PythonJSON

2021-07-28 13:29:57

大數(shù)據(jù)PandasCSV

2022-07-25 11:33:48

Python大文件

2019-09-30 09:10:11

Python編程語言數(shù)據(jù)科學

2021-11-11 12:45:36

PythonCSVJSON

2021-10-25 13:55:19

PythonmatplotlibPDF

2016-08-18 00:35:39

Pythonwitte數(shù)據(jù)采集

2010-04-13 10:42:08

Oracle數(shù)據(jù)庫

2009-12-04 16:49:33

PHP批量導出csv文

2009-07-16 15:44:40

導出CSV文本WebWork

2020-12-03 18:29:30

KubernetesDocker容器

2020-11-11 17:00:02

PythonOffice文件PDF

2021-11-06 23:19:39

Python電腦文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产xxxx搡xxxxx搡麻豆 | 久久毛片网站 | 亚洲精品一区二区网址 | 91tv在线观看| 激情av网站 | 中文字幕一区在线 | 国产一区二区三区精品久久久 | 久久视频免费观看 | 一级毛片中国 | 欧美成视频| 中文字幕av一区 | 午夜在线小视频 | 亚洲电影一区二区三区 | 蜜桃精品在线 | 午夜视频在线播放 | 视频二区 | 午夜99| 国产精品精品3d动漫 | 日韩精品视频中文字幕 | 亚洲视频在线观看免费 | 56pao在线 | 一区二区三区久久久 | 日韩av免费在线电影 | 91成人免费观看 | 亚洲国产成人一区二区 | 男人视频网站 | 欧产日产国产精品v | 亚洲伊人久久综合 | 亚洲高清在线观看 | 精品二| 日本中文字幕一区 | 国产成人精品一区二区三区在线 | 国产亚洲网站 | 自拍偷拍第一页 | 日韩影院在线观看 | 精品免费国产视频 | 中文字幕在线三区 | 在线成人福利 | 国产在线一区二区三区 | 99久久国产精 | 欧美第一页 |