csv文件的操作方法

# _*_ coding: utf-8 _*_

"""
csv file operate
"""

import csv
import datetime

# 数据
data = [
    [1, "a,bc", 19.353, datetime.datetime(2001, 3, 17)],
    [2, "ei,f", 13.287, datetime.datetime(2011, 4, 27)],
    [3, 'q"ij', 15.852, datetime.datetime(2003, 7, 14)],
    [4, "zh'n", 11.937, datetime.datetime(2012, 1, 9)],
    [5, "i'op", 12.057, datetime.datetime(2009, 5, 18)],
]

# 自己创建dialect
csv.register_dialect(
    "mydialect",
    delimiter=',',              # 字段分隔符
    escapechar='\\',            # 转义字符
    quotechar='"',              # 包裹字符
    doublequote=False,          # 使转义字符生效
    lineterminator='\n',        # 行与行之间的分隔符
    quoting=csv.QUOTE_ALL       # 包裹模式
)

# 写文件
with open("test.csv", "w") as file:
    writer = csv.writer(file, dialect="mydialect")
    # writer.writerows(data)
    for item in data:
        writer.writerow(item)
exit()

# 读文件
with open("test.csv", "r") as file:
    reader = csv.reader(file, dialect="excel")
    for item in reader:
        print(item)

# 读文件
with open("test.csv", "r") as file:
    reader = csv.DictReader(file, fieldnames=["id", "name", "float", "datetime"], dialect="excel")
    data = [item for item in reader]
    print(data)

# 写文件
with open("test.csv", "w") as file:
    writer = csv.DictWriter(file, fieldnames=["id", "name", "float", "datetime"], dialect="excel")
    writer.writeheader()
    for item in data:
        writer.writerow(item)
发布了218 篇原创文章 · 获赞 110 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/zhuiyunzhugang/article/details/105371364