假设一个csv文件的内容如下:
姓名 年龄 成绩
张三 16 89
李四 15 76
王五 14 61
我们使用Python自带的csv库读取csv文件并在csv文件中写入新的内容。
1 Python读取csv文件
1.1 常规方法
读取上述csv文件的代码如下
# -*- coding: utf-8 -*-
import csv
def read_csv(csv_path):
with open(csv_path, mode='r') as csv_file:
csv_reader = csv.reader(csv_file)
next(csv_reader) # 读取首行,跳过表头
for line in csv_reader:
if line[0] == '':
continue
name = line[0]
age = line[1]
score = line[2]
print(f'{name} {age} {score}')
if __name__ == '__main__':
read_csv('example.csv')
1.2 csv.DictReader方式
csv.DictReader
读取csv文件,并将内容映射为字典形式,我们可以将每列的标题作为字典的键值读取每一行各列的值,并且此种方式不用使用next
方式跳过第一行。
# -*- coding: utf-8 -*-
import csv
def read_csv(csv_path):
with open(csv_path, mode='r') as csv_file:
csv_reader = csv.DictReader(csv_file)
for line in csv_reader:
name = line['姓名']
age = line['年龄']
score = line['成绩']
print(f'{name} {age} {score}')
if __name__ == '__main__':
read_csv('example.csv')
2 csv文件写入内容
2.1 常规方法
2.1.1 在现有文件上追加内容
# -*- coding: utf-8 -*-
import csv
def append_write_csv(csv_path):
with open(csv_path, mode='a', newline='') as csv_file:
csv_writer = csv.writer(csv_file)
new_line = ['赵六','15','93']
csv_writer.writerow(new_line)
if __name__ == '__main__':
append_write_csv('example.csv')
2.1.2 覆盖已有csv内容,写入新的内容
# -*- coding: utf-8 -*-
import csv
def write_new_csv(csv_path):
with open(csv_path, mode='w', newline='') as csv_file:
csv_writer = csv.writer(csv_file)
header = ['姓名','年龄','成绩']
csv_writer.writerow(header)
new_line = ['赵六','15','93']
csv_writer.writerow(new_line)
if __name__ == '__main__':
write_new_csv('example.csv')
2.2 csv.DictWriter
import csv
def write_new_csv(csv_path):
with open(csv_path, mode='w', newline='') as csv_file:
header = ['姓名', '年龄', '成绩']
csv_writer = csv.DictWriter(csv_file,header)
csv_writer.writeheader()
csv_writer.writerow({"姓名": "赵六", "年龄": "15", "成绩": "93"})
if __name__ == '__main__':
write_new_csv('example.csv')
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Python – 读取csv文件和在csv文件写入内容
原文链接:https://www.stubbornhuang.com/2376/
发布于:2022年09月30日 9:47:38
修改于:2023年06月21日 17:59:47
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52