python操做csv文件

CSV(Comma-Separated Values)即逗號分隔值,能夠用Excel打開查看。因爲是純文本,任何編輯器也均可打開。與Excel文件不一樣,CSV文件中:數組

值沒有類型,全部值都是字符串,不能指定字體顏色等樣式,不能指定單元格的寬高,不能合併單元格沒有多個工做表,不能嵌入圖像圖表編輯器

在CSV文件中,以,做爲分隔符,分隔兩個單元格。像這樣a,,c表示單元格a和單元格c之間有個空白的單元格。依此類推。字體

不是每一個逗號都表示單元格之間的分界。因此即便CSV是純文本文件,也堅持使用專門的模塊進行處理。Python內置了csv模塊。先看看一個簡單的例子。編碼

」將data內容寫入csv文件,以下圖所示:
 1 import csv
 2 data =[
 3 #使用數字和字符串的數字均可以
 4 ("ken","mafe",23),
 5 ("Tame","maee",29),
 6 ("Js","dggd",26)]
 7 with open("d://test.csv",'w',newline='')as t_file:
 8     csv_writer = csv.writer(t_file)
 9     for l in data:
10         csv_writer.writerow(l)

 

第二步運行py文件以後,咱們能夠看到d盤已經建立了test.csv文件,以下圖所示:spa

 

第三步打開test.csv文件,能夠看到已經將內容寫入到csv文件中了:3d

上面就簡單介紹了csv的寫,下面來看一下csv讀的方法:excel

第一步,輸入code

1 import csv
2 reader =csv.reader(open('d://test.csv'))#打開
3 for list in reader:
4     print(list)

 

 第二步運行py文件,能夠看到讀取了csv文件內容,這裏須要注意的是若是直接將excel表格後綴名改成csv文件,讀取的時候,會出現編碼錯誤

在上面,list是一個列表,若是想要查看固定的某列,則須要加上下標,例如我想要查看age,那麼只須要改成list[1]對象

 

 

補充:blog

在寫入字典序列類型數據的時候,須要傳入兩個參數,一個是文件對象——f,一個是字段名稱——fieldnames,到時候要寫入表頭的時候,只須要調用writerheader方法,寫入一行字典系列數據調用writerrow方法,並傳入相應字典參數,寫入多行調用writerows

 

 1 import csv
 2 header=['name','age']
 3 data =[
 4 {'name':'mafe','age':23},
 5 {'name':'maee','age':29},
 6 {'name':'dggd','age':26}]
 7 with open("d:\\test.csv",'w',newline='')as t_file:
 8     #表頭在這裏傳入,做爲第一行數據
 9     writer = csv.DictWriter(t_file,header)
10     writer.writeheader()
11     for l in data:
12         writer.writerow(l)

再打開test.csv結果以下:

 

假設csv文件的內容如上圖圖所示,用DictReader來讀取它

DictReader會將第一行的內容(類標題)做爲key值,第二行開始纔是數據內容。即圖中的csv文件有2列4行數據,第一列的key值爲name,第二列的key值爲age:

1 import csv
2 with open('d://test.csv',encoding='utf-8')as f:
3     reader =csv.DictReader(f)#字典表 DictReader 列表讀取
4     headers =next(reader)#迭代一次
5     print(headers)
6     for row in reader:
7         print(row)

運行結果以下:

 

最後提醒一下:

read方法的使用:打印出來的結果是數組類型,有文件中幾行數據就打印幾個數組,不區分表頭和值

 

DictReader方法的使用:打印出來的數據是字典類型,表格的表頭爲鍵、每一行的值爲值,值有幾行就打印幾個字典

相關文章
相關標籤/搜索