CSV 文件的讀寫(函數)

# -*- coding: utf-8 -*-
# @Time    : 2018/12/27  11:22
# @Author  : zhangxinxin
# @Email   : 778786617@qq.com
# @Software: PyCharm

"""
CSV(Comma-Separated Values)即逗號分隔值,能夠用Excel打開查看。因爲是純文本,任何編輯器也均可打開。與Excel文件不一樣,CSV文件中:
    值沒有類型,全部值都是字符串
    不能指定字體顏色等樣式
    不能指定單元格的寬高,不能合併單元格
    沒有多個工做表
    不能嵌入圖像圖表
在CSV文件中,以,做爲分隔符,分隔兩個單元格。像這樣a,,c表示單元格a和單元格c之間有個空白的單元格。依此類推。
不是每一個逗號都表示單元格之間的分界。因此即便CSV是純文本文件,也堅持使用專門的模塊進行處理。Python內置了csv模塊。
"""
import csv


def reader_writer():
    # 文件的讀取
    filename = r'test.csv'
    with open(filename) as f:
        reader = csv.reader(f)
        # 不能直接打印出想看到的內容, 最外層是list
        # eg: print(reader) = <_csv.reader object at 0x000001FEA7A66C78>
        # print(list(reader))
        for row in reader:
            print(reader.line_num, row)
    #     f.close()

    # 數據的寫入
    # 能夠寫入一行或多行
    datas = [['你是誰', '我是小愛'] , ['你在哪', '你在幹什麼']]
    with open('test.csv', 'a', newline='') as f:
        # 默認打開當前項目文件夾下, 若無則建立, 可指定路徑
        writer = csv.writer(f)
        for row in datas:
            writer.writerow(row)
        # 寫入多行數據
        # writer.writerows(datas)


def Dict_reader_writer():
    """DictReader和DictWriter對象"""
    filename = 'test2.csv'
    headers = ['name', 'age']
    datas = [{'name': 'Bob', 'age': 23},
             {'name': 'Jerry', 'age': 44},
             {'name': 'Tom', 'age': 15}
             ]
    with open(filename, 'a', newline='') as f:
        writer = csv.DictWriter(f, headers)
        writer.writeheader()
        for row in datas:
            writer.writerow(row)


    with open(filename) as f:
        reader = csv.DictReader(f)
        for row in reader:
            name = row['name']
            age = row['age']
            print(name, age)


if __name__ == '__main__':
    Dict_reader_writer()
相關文章
相關標籤/搜索