csv文件讀寫(函數reader、writer;類DictReader、DictWriter)


讀寫csv文件用到的函數reader、writer;類DictReader、DictWriter
 
1.reader方法的使用
查看reader方法的幫助說明
>>> help(csv.reader)
Help on built-in function reader in module _csv:
 
reader(...)
    csv_reader = reader(iterable [, dialect='excel']
                            [optional keyword args])
        for row in csv_reader:
            process(row)
 
csv文件上的數據:
 
import csv 
reader = csv.reader(file('data.csv','rb')
for line in reader
    print line
打印出來的結果是數組類型,有文件中幾行數據就打印幾個數組,不區分表頭和值
輸出結果:
 
2.writer方法的使用
查看help說明
>>> help(csv.writer)
Help on built-in function writer in module _csv:
 
writer(...)
    csv_writer = csv.writer(fileobj [, dialect='excel']
                                [optional keyword args])
        for row in sequence:
            csv_writer.writerow(row)
    
        [or]
    
        csv_writer = csv.writer(fileobj [, dialect='excel']
                                [optional keyword args])
        csv_writer.writerows(rows)
    
    The "fileobj" argument can be any object that supports the file API.
 
writer的使用:
import csv
writer = csv.writer(file('data.csv','wb'))
writer.writerow(['Column1','Column2','Column3']) #寫入csv文件的表頭
lines = [range(3) for i in range(5)] #[[0,1,2],[0,1,2],[0,1,2],[0,1,2],[0,1,2]]
writer.writerows(lines) #同時寫入多行信息
或:
for line in lines:
    writer.writerow(line) #一次寫入一行信息
 
csv文件上查看寫入結果:
 
 3.DictReader類的使用
csv文件的數據如下:
import csv
reader = csv.DictReader(file('data.csv','rb'))
for line in reader
    print line
打印出來的數據是字典類型,表格的表頭為鍵、每一行的值為值,值有幾行就打印幾個字典
 
4.DictWriter類的使用
import csv
rows = [{'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'},
        {'Column1': '0', 'Column2': '1', 'Column3': '2', 'Column4': '3'}]
 
fieldnames = ['Column1','Column2','Column3','Column4'] #定義表頭字段
 
cr = csv.DictWriter(file('data.csv','wb'),fieldnames = fieldnames)
cr.writeheader() #將表頭名稱寫入csv文件
cr.writerows(rows) #將要寫入的數據一次性寫入到文件,也可以使用cr.writerow()一次寫入一行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM