本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Python – 读取csv文件和在csv文件写入内容
原文链接:https://www.stubbornhuang.com/2376/
发布于:2022年09月30日 9:47:38
修改于:2022年09月30日 9:47:38

假设一个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')
当前分类随机文章推荐
- Python:UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 12305,以及中文乱码的解决方案 阅读2973次,点赞0次
- Python - 使用websockets库构建websocket服务器 阅读1521次,点赞0次
- Python - Linux/Centos/Ubuntu查看CUDA/cuDNN版本号 阅读3356次,点赞0次
- Python3 - 正则表达式去除字符串中的特殊符号 阅读13076次,点赞1次
- Python - BeautifulSoup的find()和findAll() 阅读2714次,点赞0次
- Python – 解决opencv-python使用cv2.imwrite()保存中文路径图片失败的问题 阅读1269次,点赞0次
- Python - ModuleNotFoundError: No module named 'skimage' 阅读213次,点赞0次
- Python3爬虫 - requests的请求响应状态码(requests.status_code) 阅读8825次,点赞4次
- Python - 使用python-opencv裁剪原视频为与视频高同宽的视频 阅读1458次,点赞0次
- Python3爬虫 - requests库 阅读3633次,点赞3次
全站随机文章推荐
- ThreeJS - FBXLoader: TGA loader not found, creating placeholder texture for ... 阅读489次,点赞0次
- WordPress - wp_login_url函数详解 阅读1856次,点赞0次
- C++ – 字节数组byte[]或者unsigned char[]与long double的相互转换 阅读899次,点赞0次
- C++11/std::condition_variable - 生产者消费者模型 阅读2711次,点赞0次
- TensorRT - Using an engine plan file across different models of devices is not recommended and is likely to affect performance or even cause errors 阅读46次,点赞0次
- UnrealEngine4 - 关于UObject被自动GC垃圾回收的巨坑 阅读3912次,点赞0次
- 工具网站推荐 - 检查IP和端口是否被ban的工具网站 阅读353次,点赞0次
- 工具推荐 - 一些好用的DNS服务器 阅读732次,点赞0次
- C++ - 格式化json字符串,方便展示json字符串的层次结构 阅读2521次,点赞0次
- 工具网站推荐 - 获取本机外网IP 阅读2578次,点赞0次
评论
167