欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python讀取csv文件指定行的2種方法詳解

 更新時間:2020年02月13日 14:43:24   作者:豬笨是念來過倒  
這篇文章主要介紹了python讀取csv文件指定行的方法詳解,需要的朋友可以參考下

csv是Comma-Separated Values的縮寫,是用文本文件形式儲存的表格數據,比如如下的表格

就可以存儲為csv文件,文件內容是:

No.,Name,Age,Score

1,Apple,12,98

2,Ben,13,97

3,Celia,14,96

4,Dave,15,95

假設上述csv文件保存為"A.csv",如何用Python像操作Excel一樣提取其中的一行,也就是一條記錄,利用Python自帶的csv模塊,有2種方法可以實現:

方法一:reader

第一種方法使用reader函數,接收一個可迭代的對象(比如csv文件),能返回一個生成器,就可以從其中解析出csv的內容:比如下面的代碼可以讀取csv的全部內容,以行為單位:

import csv
with open('A.csv','rb') as csvfile:
  reader = csv.reader(csvfile)
  rows = [row for row in reader]
print rows

得到:

[['No.', 'Name', 'Age', 'Score'],

['1', 'Apple', '12', '98'],

['2', 'Ben', '13', '97'],

['3', 'Celia', '14', '96'],

['4', 'Dave', '15', '95']]

要提取其中第二行,可以用下面的代碼:

import csv
with open('A.csv','rb') as csvfile:
  reader = csv.reader(csvfile)
  for i,rows in enumerate(reader):
    if i == 2:
    row = rows
print row 

得到:

['2', 'Ben', '13', '97']

這種方法是通用的方法,要事先知道行號,比如Ben的記錄在第2行,而不能根據'Ben'這個名字查詢。這時可以采用第二種方法:

方法二:DictReader

第二種方法是使用DictReader,和reader函數類似,接收一個可迭代的對象,能返回一個生成器,但是返回的每一個單元格都放在一個字典的值內,而這個字典的鍵則是這個單元格的標題(即列頭)。用下面的代碼可以看到DictReader的結構:

import csv
with open('A.csv','rb') as csvfile:
  reader = csv.DictReader(csvfile)
  rows = [row for row in reader]
print rows

得到:

[{'Age': '12', 'No.': '1', 'Score': '98', 'Name': 'Apple'},

{'Age': '13', 'No.': '2', 'Score': '97', 'Name': 'Ben'},

{'Age': '14', 'No.': '3', 'Score': '96', 'Name': 'Celia'},

{'Age': '15', 'No.': '4', 'Score': '95', 'Name': 'Dave'}]

如果我們想用DictReader讀取csv的某一列,就可以用列的標題查詢:

import csv
with open('A.csv','rb') as csvfile:
  reader = csv.DictReader(csvfile)
  for row in reader:
    if row['Name']=='Ben':
    print row

就得到:

{'Age': '13', 'No.': '2', 'Score': '97', 'Name': 'Ben'}

可見,DictReader很適合讀取csv的的行(記錄)。

相關文章

  • graphviz 最新安裝教程適用初學者

    graphviz 最新安裝教程適用初學者

    Graphviz 是一個自動排版的作圖軟件,可以生成 png pdf 等格式,這篇文章主要介紹了graphviz 2022最新安裝教程適用初學者,需要的朋友可以參考下
    2023-02-02
  • Python實現輸出某區(qū)間范圍內全部素數的方法

    Python實現輸出某區(qū)間范圍內全部素數的方法

    這篇文章主要介紹了Python實現輸出某區(qū)間范圍內全部素數的方法,涉及Python數值運算、排序、判斷等相關操作技巧,需要的朋友可以參考下
    2018-05-05
  • QML實現鐘表效果

    QML實現鐘表效果

    這篇文章主要為大家詳細介紹了QML實現鐘表效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Python基礎之函數與控制語句

    Python基礎之函數與控制語句

    在調用函數的時候,如果沒有按照形參傳入指定的參數,就會報錯,這時,我們可以為函數的參數設置默認的值,下面這篇文章主要給大家介紹了關于Python基礎之函數與控制語句的相關資料,需要的朋友可以參考下
    2022-04-04
  • OpenCV-DFT最優(yōu)尺寸cv::getOptimalDFTSize的設置

    OpenCV-DFT最優(yōu)尺寸cv::getOptimalDFTSize的設置

    本文主要介紹了OpenCV-DFT最優(yōu)尺寸cv::getOptimalDFTSize的設置,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • python數據擬合之scipy.optimize.curve_fit解讀

    python數據擬合之scipy.optimize.curve_fit解讀

    這篇文章主要介紹了python數據擬合之scipy.optimize.curve_fit解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Tensorflow累加的實現案例

    Tensorflow累加的實現案例

    今天小編就為大家分享一篇Tensorflow累加的實現案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python的paramiko模塊實現遠程控制和傳輸示例

    python的paramiko模塊實現遠程控制和傳輸示例

    本篇文章主要介紹了python的paramiko模塊實現遠程控制和傳輸示例,非常具有實用價值,需要的朋友可以參考下
    2017-10-10
  • python和anaconda區(qū)別以及先后安裝的問題詳解

    python和anaconda區(qū)別以及先后安裝的問題詳解

    Anaconda(開源的Python包管理器)是一個python發(fā)行版,包含了conda、Python等180多個科學包及其依賴項,下面這篇文章主要給大家介紹了關于python和anaconda區(qū)別以及先后安裝問題的相關資料,需要的朋友可以參考下
    2022-05-05
  • Python將多個list合并為1個list的方法

    Python將多個list合并為1個list的方法

    今天小編就為大家分享一篇Python將多個list合并為1個list的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論