Python中对csv文件的操作 2018-10-11

2018-10-11  本文已影响0人  Lea0423

声明:此文章仅供个人工作学习时复习查看,可能对其他人并无用处,望见谅

关于python对于csv文件的操作,其内置的csv模块提供了有效便捷的操作方法。

1. 首先是普通的读写方式

1. 读取文件csv.reader(csvfile, dialect='excel', **fmtparams)
# 读取csv文件
import csv

with open('test_.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
       print(row[0]) #输出每行记录的编号
2. 写入文件csv.writer(csvfile, dialect='excel', **fmtparams)
# 读取csv文件
import csv

with open('test_.csv', 'w', newline='') as f: #不设置newline,写入的每一行数据后面都有一个空行
# 如果是以二进制的形式写入不存在空行问题
    writer = csv.writer(f)
    names = ['lea', 'tom', 'lucy', 'troye']
    writer.writerow(['number', 'name']) # csv文件的每一行以列表的形式传入
    for number in range(1, 5):
        writer.writerow([number, names[number-1]]) 
# 或者可以多行同时写入
    data = [[1, 'lea'],
            [2, 'rom'],
            [3, 'lucy'],
            [4, 'troye'],
]
    writer.writerows

2. 其次是字典形式的读写方式

1.读取文件 csv.DictReader('filename')
>>> import csv
>>> with open('test_.csv') as f:
...     reader = csv.DictReader(f)
...     for row in reader:
...         print(row['name'])
...
lea
tom
......
2.写入文件 csv.DictWriter('filename', fieldnames=fieldnames)
import csv
with open('test_.csv', 'w') as f:
    headers = ['number', 'name']
    writer = csv.DictWriter(f, headers)

    writer.writeheader()
    names = ['lea', 'tom', 'lucy', 'troye']
    for number in range(1, 5):
        writer.writerow({'number':number, 'name':names[number-1]}) 
    # 同样的,可以将多条数据用列表打包后同时传入
    data = [{'number': 5, 'name':'lea'},
            {'number': 6, 'name':'tom'},
            {'number': 7, 'name':'lucy'},
            {'number': 8, 'name':'troye'},
]
    writer.writerows(data)

先到这里,以后碰到有用的部分再添加更新

上一篇下一篇

猜你喜欢

热点阅读