csv文件讀取與寫入


csv文件的讀取:

1)通過列表下標讀取:

import csv
with open('stock.csv','r') as fp:
    # reader是個迭代器
    reader = csv.reader(fp)
    next(reader)
    for i in reader:
        # print(i)
        name = i[3]
        volumn = i[-1]
        print({'name':name,'volumn':volumn})

  直接用 open() 函數打開 csv 文件。使用csv.reader() 方法,其中參數為指針。因為該 csv 文件有表頭,使用可以使用 next() 函數直接跳過第一組數據,即表頭數據。然后直接通過列表下標獲取想要的數據。

 

2)通過key獲取:

import csv
with open('stock.csv','r') as fp:
    reader = csv.DictReader(fp)
    for i in reader:
        value = {"name":i['secShortName'],"volumn":i['turnoverVol']}
        print(value)

   使用DictReader創建reader對象,不會包含表頭那行的數據,而reader這個迭代器與reader創建的又不一樣,遍歷這個迭代器,返回來的是一個字典,不是列表。

 

csv文件的寫入:

1)使用 writer 創建對象,writerow(s) 寫入:

import csv
headers = ['username','age','height']
value = [
    ('張三',18,180),
    ('李四',19,175),
    ('王五',20,170)
]
with open("classroom.csv",'w',encoding='utf-8',newline='') as fp:
    writer = csv.writer(fp)
    writer.writerow(headers)
    writer.writerows(value)

  寫入數據到 csv 文件,需要創建一個 writer 對象,才可以使用 writerow 寫入一行,而 writerows 是全部寫入。其中 默認下 newline=‘\n’ 即寫入一行就會換行,所以需要改成空,數據都是存放在列表中。

 

2)使用 DictWriter 創建對象,writerow(s) 寫入:

import csv
headers = ['name','age','height']
value = [
    {'name':'張三','age':18,'height':180},
    {'name':'李四','age':19,'height':175},
    {'name':'王五','age':20,'height':170}
]
with open("classroom1.csv",'w',encoding='utf-8',newline='') as fp: #默認newline='\n'
    writer = csv.DictWriter(fp,headers)
    writer.writeheader()
    writer.writerows(value)

  當數據是存放在字典中可以使用 DictWriter 創建 writer 對象,其中,需要傳兩個參數,第一個是指針,第二個是表頭信息。當使用 DictWriter 創建對象時,寫入表頭還需要執行 writeheader() 操作。

 


免責聲明!

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



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