CSV格式文件的讀取與保存


 CSV格式文件的讀取與保存

1. 什么是CSV

2. CSV文件的讀取

3.CSV文件的保存

 

 

 

 

1. 什么是CSV

"CSV"並不是一種單一的、定義明確的格式(盡管RFC 4180有一個被通常使用的定義)。因此在實踐中,術語“CSV”泛指具有以下特征的任何文件:

  1.純文本,使用某個字符,比如ASCII,Unicode,EBCIC或GB2312(簡體中文環境)等;

  2.由記錄組成(典型的是每行一條記錄);

  3.每條記錄被分隔符分隔為字段(典型分隔符有逗號、分號或制表符;有時分隔符可以包括可選的空格);

  4.每條記錄都有同樣的字段序列。

2. CSV文件的讀取

  1、按列表讀取

  2、按字典形式讀取

#encoding: utf-8

import csv

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


def read_csv_demo2():
    with open('stock.csv','r') as fp:
        # 使用DictReader創建的reader對象
        # 不會包含標題那行的數據
        # reader是一個迭代器,遍歷這個迭代器,返回來的是一個字典。
        reader = csv.DictReader(fp)
        for x in reader:
            value = {"name":x['secShortName'],'volumn':x['turnoverVol']}
            print(value)

if __name__ == '__main__':
    read_csv_demo2()

 

3. CSV文件的保存

  1、以列表進行保存,直接存入

  2、以字典形式保存,需要先插入頭再保存值

#encoding: utf-8

import csv

def write_csv_demo1():
    headers = ['username', 'age', 'height']
    values = [
        ('張三', 18, 180),
        ('李四', 19, 190),
        ('王五', 20, 160)
    ]

    with open('classroom.csv', 'w', encoding='utf-8', newline='') as fp:
        writer = csv.writer(fp)
        writer.writerow(headers)
        writer.writerows(values)


def write_csv_demo2():
    headers = ['username', 'age', 'height']
    values = [
        {'username':'張三','age':18,'height':180},
        {'username':'李四','age':19,'height':190},
        {'username':'王五','age':20,'height':160}
    ]
    with open('classroo1.csv','w',encoding='utf-8',newline='') as fp:
        writer = csv.DictWriter(fp,headers)
        # 寫入表頭數據的時候,需要調用writeheader方法
        writer.writeheader()
        writer.writerows(values)


if __name__ == '__main__':
    write_csv_demo2()

 


免責聲明!

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



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