今天閒來無事,寫了會csv,簡單總結下csv具體操作
什麼是csv
逗號分隔值(comma-separated values,csv,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其檔案以純文字形式儲存**資料(數字和文字)
讀csv檔案
1、首先匯入csv模板
2、建立乙個csv檔案物件
3、開啟檔案進行讀取
**結果:
['測試1', '軟體測試工程師']
['測試2', '軟體測試工程師']
['測試3', '軟體測試工程師']
['測試4', '軟體測試工程師']
['測試5', '軟體測試工程師']
寫入csv檔案
1、首先匯入csv模組
2、建立乙個csv檔案物件
3、進行寫入csv檔案
#coding:utf-8
importcsv
data=[
("測試1",'軟體測試工程師'),
("測試2",'軟體測試工程師'),
("測試3",'軟體測試工程師'),
("測試4",'軟體測試工程師'),
("測試5",'軟體測試工程師'),
f= open('222.csv','w')
writer=csv.writer(f)for i indata:
writer.writerow(i)
f.close()
寫入後開啟檔案發現亂碼了
解決方法:
1、匯入codecs模組
2、使用cpdecs開啟檔案
#coding:utf-8
importcsvimportcodecs
data=[
("測試1",'軟體測試工程師'),
("測試2",'軟體測試工程師'),
("測試3",'軟體測試工程師'),
("測試4",'軟體測試工程師'),
("測試5",'軟體測試工程師'),
f= codecs.open('222.csv','w','gbk')
writer=csv.writer(f)for i indata:
writer.writerow(i)
f.close()
這個時候發現不會亂碼了
編碼和解碼
csv檔案其他用法
csv.dictreader()用法:
# 將csv 資料讀進列表中(首先查詢是否使用給定欄位名,如果沒有,就是用第一行作為鍵)
#coding:utf-8
importcsv
data=[
("測試1",'軟體測試工程師1'),
("測試3",'軟體測試工程師3'),
("測試4",'軟體測試工程師4'),
("測試5",'軟體測試工程師5'),
f1= open('222.csv','r')
reader=csv.dictreader(f1)for i inreader:print(i)
f1.close()
**結果:
[('測試1', '測試3'), ('軟體測試工程師1', '軟體測試工程師3')]
[('測試1', '測試4'), ('軟體測試工程師1', '軟體測試工程師4')]
[('測試1', '測試5'), ('軟體測試工程師1', '軟體測試工程師5')]
csv.dictwriter()用法
#直接字典字段寫入到csv檔案中#coding:utf-8
importcsv
data=
with open('123.csv','w')as f:
fieldnames= #表頭
writer = csv.dictwriter(f,fieldnames=fieldnames)
writer.writeheader()
writer.writerow(data)
結果:
發現上面寫入後中間多了一行,如何解決這一行呢?
加入引數"enwline="』」
#coding:utf-8
importcsv
data= #加入引數"enwline=''」
寫讀追加狀態
'r':讀
'w':寫
'a':追加
'r+' == r+w(可讀可寫,檔案若不存在就報錯(ioerror))
'w+' == w+r(可讀可寫,檔案若不存在就建立)
'a+' ==a+r(可追加可寫,檔案若不存在就建立)
對應的,如果是二進位制檔案,就都加乙個b就好啦:
'rb' 'wb' 'ab' 'rb+' 'wb+' 'ab+'
python讀檔案 python 檔案讀寫)
writefile test.txt 先自己寫乙個模組。這是乙個中文文件 第二行第三行 第四行 讀這個檔案有兩種方法 可以是f open test.txt 然後 f.read 這樣就讀取檔案裡的所有東西了。然後?f.close 就樣這個檔案便關閉了。還有就是f.readlines 一行一行的讀,這樣...
python 讀txt python讀寫txt檔案
整理平常經常用到的檔案物件方法 f.readline 逐行讀取資料 方法一 1 f open tmp test.txt 2 f.readline 3 hello girl 4 f.readline 5 hello boy 6 f.readline 7 hello man 8 f.readline 9...
python讀csv python讀寫csv檔案
1匯入相關包 importosimportreimportcsv 1讀取csv檔案 def read csv filename,header false res with open filename as f f csv csv.reader f if header 預設讀取頭部檔案 headers...