Python 是最流行、功能最強大的編程語言之一,由于它是自由開源的,因此每個人都可以使用,大多數 Fedora 系統都已安裝了該語言,Python 可用于多種任務,其中包括處理逗號分隔值(CSV)資料,CSV檔案一開始往往是以表格或電子表格的形式出現,本文介紹了如何在 Python 3 中處理 CSV 資料,
這里要注意:不管你是為了Python就業還是興趣愛好,記住:專案開發經驗永遠是核心,如果如果你沒有python入門到高級實戰視頻教程,可以去小編的Python交流.裙 :七衣衣九七七巴而五(數字的諧音)轉換下可以找到了,里面很多新python教程專案,還可以跟老司機交流討教!
CSV 資料正如其名,CSV 檔案按行放置資料,數值之間用逗號分隔,每行由相同的欄位定義,簡短的 CSV 檔案通常易于閱讀和理解,但是較長的資料檔案或具有更多欄位的資料檔案可能很難用肉眼決議,因此在這種情況下計算機做得更好,
這是一個簡單的示例,其中的欄位是 Name、Email 和 Country,在此例中,CSV 資料將欄位定義作為第一行,盡管并非總是如此,
Name,Email,Country
John Q. Smith,[email protected],USA
Petr Novak,[email protected],CZ
Bernard Jones,[email protected],UK
復制代碼
從電子表格讀取 CSV
Python 包含了一個 csv 模塊,它可讀取和寫入 CSV 資料,大多數電子表格應用,無論是原生(例如 Excel 或 Numbers)還是基于 Web 的(例如 Google Sheet),都可以匯出 CSV 資料,實際上,許多其他可發布表格報告的服務也可以匯出為 CSV(例如,PayPal),
Python csv 模塊有一個名為 DictReader 的內置讀取器方法,它可以將每個資料行作為有序字典 (OrderedDict) 處理,它需要一個檔案物件訪問 CSV 資料,因此,如果上面的檔案在當前目錄中為 example.csv,那么以下代碼段是獲取此資料的一種方法:
f = open('example.csv', 'r')
from csv import DictReader
d = DictReader(f)
data = https://www.cnblogs.com/chengxuyuanaa/p/[]
for row in d:
data.append(row)
復制代碼
現在,記憶體中的 data 物件是 OrderedDict 物件的串列:
[OrderedDict([('Name', 'John Q. Smith'),
('Email', '[email protected]'),
('Country', 'USA')]),
OrderedDict([('Name', 'Petr Novak'),
('Email', '[email protected]'),
('Country', 'CZ')]),
OrderedDict([('Name', 'Bernard Jones'),
('Email', '[email protected]'),
('Country', 'UK')])]
復制代碼
參考這些物件很容易:
>>> print(data[0]['Country'])
USA
>>> print(data[2]['Email'])
[email protected]
復制代碼
順便說一句,如果你需要處理沒有欄位名標題行的 CSV 檔案,那么 DictReader 類可以讓你定義它們,在上面的示例中,添加 fieldnames 引數并傳遞一系列名稱:
d = DictReader(f, fieldnames=['Name', 'Email', 'Country'])
復制代碼
真實體子
我最近想從一長串人員名單中隨機選擇一個中獎者,我從電子表格中提取的 CSV 資料是一個簡單的名字和郵件地址串列,
幸運的是,Python 有一個有用的 random 模塊,可以很好地生成隨機值,該模塊 Random 類中的 randrange 函式正是我需要的,你可以給它一個常規的數字范圍(例如整數),以及它們之間的步長值,然后,該函式會生成一個隨機結果,這意味著我可以在資料的總行數范圍內獲得一個隨機整數(或者說是行號),
這個小程式運行良好:
from csv import DictReader
from random import Random
d = DictReader(open('mydata.csv'))
data = https://www.cnblogs.com/chengxuyuanaa/p/[]
for row in d:
data.append(row)
r = Random()
winner = data[r.randrange(0, len(data), 1)]
print('The winner is:', winner['Name'])
print('Email address:', winner['Email'])
復制代碼
顯然,這個例子非常簡單,電子表格本身包含了復雜的分析資料的方法,但是,如果你想在電子表格應用之外做某事,Python 或許是一種技巧!
最后注意:不管你是為了Python就業還是興趣愛好,記住:專案開發經驗永遠是核心,如果如果你沒有python入門到高級實戰視頻教程,可以去小編的Python交流.裙 :七衣衣九七七巴而五(數字的諧音)轉換下可以找到了,里面很多新python教程專案,還可以跟老司機交流討教!
本文的文字及圖片來源于網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/157926.html
標籤:Python
