python CSV表格读写教程

python CSV表格读写教程

一、csv环境

python 中csv库是标准库,不需要安装哦,哈哈哈,可以直接用起来吧

二、csv 打开方式

1.在这之前,我们需要简单了解一下文件操作Tips,是用with open读写还是open读写csv文件呢

# [强烈推荐使用] with opend读写:打开操作完后会自动关闭
with open('example.csv', 'w', newline='') as file:
	count = file.readlines()
	
# open读写:只会打开,不会自动关闭,需要我们添加个close
open('example.csv', 'w', newline='') as file:
	count = file.readlines()
	file.close()

三、csv文本方式写入

读写文件时,确保使用 newline=“”,参数来防止在不同平台上的换行符问题。
“w” 是新建文件并写入
“r” 是仅读取文件内容
“a” 是原有文件基础上写入

a. 字段名的写入

import csv

# 创建 CSV 文件并写入字段名
with open('example.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    
    # 预设字段名方式一
    header = 'Name', 'Age', 'City'
    writer.writerow(header)
    
    # 预设字段名方式二
    header = [['Name', 'Age', 'City']]
    writer.writerows(header)

方式一和方式二执行执行结果
在这里插入图片描述

b. 多内容一起写入,需要以“”逗号隔开

import csv

# 字段名和内容
data = [
	['Name', 'Age', 'City'],
	["Tom", 18, "New York"],
	["Jerry", 18, "New York"]
]

# 创建 CSV 文件并写入字段名
with open('example.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

执行结果
在这里插入图片描述

c. 我们想加个内容怎么办呢?

PS:请注意 writerowwriterows 的区别哈
加单行,使用writerow
加多行,使用writerows

import csv

# 字段名和内容
data = [
	['Name', 'Age', 'City'],
	["Tom", 18, "New York"],
	["Jerry", 18, "New York"]
]

# 创建 CSV 文件并写入字段名
with open('example.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

    data2 = "Bob", 20, "Guangzhou"
    writer.writerow(data2)

    data3 = [["Alice", 35, "Lundun"]]
    writer.writerows(data3)

    data4 = ("Page", 25, "Lundun"), ("George", 30, "Guangzhou"), ("Judy", 19, "New York")
    writer.writerows(data4)

执行结果
在这里插入图片描述

还有一种方式可以加内容,写成函数方式,然后调用一次就写入一次
PS:记得要使用"a"格式哦

import csv

def csv_writer(file_name, data):
	# 列表 方式写入csv
	with open('example.csv', 'a', newline='') as file:
	    writer = csv.writer(file)
	    writer.writerows(data)

data = [["Alice", 35, "Lundun"]]
csv_writer('example.csv', data)

我执行了三次的结果
在这里插入图片描述

四、csv文本方式读取

import csv

# 读取 CSV 文件方式一(每行都是一个列表)[推荐使用]
with open('example.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)
        
# 读取 CSV 文件方式二(返回第一行)
with open('example.csv', 'r') as file:
    reader = file.readline()
    print(reader)
    
# 读取 CSV 文件方式三(返回全部,集成在一个列表)[推荐使用]
with open('example.csv', 'r') as file:
    reader = file.readlines()
    print(reader)
    
# 读取 CSV 文件方式四(返回全部,集成在一个字符串)
with open('example.csv', 'r') as file:
    reader = file.read()
    print(reader)

方式一执行结果
在这里插入图片描述
方式二执行结果
在这里插入图片描述
方式三执行结果
在这里插入图片描述
方式四执行结果
在这里插入图片描述

五、csv文本方式精准读取

这是我们要读取的csv表格,python均是以0开始读数
读取行:Name = 0, Tom = 1, Jerry = 2, Bob = 3 … Judy = 7
读取列:Name = 0, Age = 1, City = 2
在这里插入图片描述

""" 我们需要获取第三行第一列的数据 """
# 第二行 = 2
# 第三列 = 0

with open('example.csv', 'r') as file:
    reader = file.readlines()
    print("执行结果:%s" % reader[2].split(",")[0])

执行结果:Jerry

""" 我们需要获取第三行第Age列的数据 """
# 第二行 = 2

with open('example.csv', 'r') as file:
    reader = file.readlines()
    
	# 获取Age列的数值
    datalow = reader[0].split(",").index("Age")
    
	# 读取第三行Age列的值
    print("执行结果:%s" % reader[2].split(",")[datalow])

执行结果:18

""" 我们需要获取 Page 所在的 City 的怎么办呢? """

with open('example.csv', 'r') as file:
    reader = file.readlines()

    # 获取字段名所在的列,去除数据中带有\n, 避免索引不到元素
    low = reader[0].replace("\n", "").split(",")
    
    # 我们已知Page是人名,存在Name列中
    Namelow = low.index("Name")
    
    # 从 Name 列找到 Page 所在的行
    for row in reader:
    	if "Page" == row.split(",")[Namelow]:
    		datarow = reader.index(row)
    		print(Namerow)
    		
   	# 我们要找到Page所在的城市,存在City列中
    Citylow = low.index("City")
 
    print("执行结果:%s" % reader[Namerow].split(",")[Citylow])

执行结果:Lundun

六、csv字典方式写入

在使用 DictReader 和 DictWriter 时,字段名的顺序是敏感的

import csv

# 预设字段名
field = ['Name', 'Age', 'City']

with open('example2.csv', 'w', newline='') as file:

    writer = csv.DictWriter(file, fieldnames=field)
    writer.writeheader()
    
    data = {'Name': 'Alice', 'Age': 30, 'City': 'New York'}
    writer.writerow(data)
	
	datas = ({'Name': 'Bob', 'Age': 25, 'City': 'Los Angeles'}, {'Name': 'Page', 'Age': 20, 'City': 'Lundun'})
	writer.writerows(datas)  

执行结果
在这里插入图片描述

七、csv字典方式读取

import csv

#reader是一个迭代器,是以字典的形式读出来
with open('example2.csv', 'r') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row)

执行结果
在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值