目录
我的csv文件如下:
User.csv
读取CSV文件
列表读取
尝试读取一下csv文件,代码如下
import csv
# 文件名
filename = 'User.csv'
# 打开文件
f = open(file=filename, mode='r', encoding='UTF-8')
# 创建csv读取文件实例
csv_f = csv.reader(f)
# 遍历
for row in csv_f:
print(row)
运行一下看下控制台
从控制台可以看得出来遍历输出的格式是列表的形式,那就用列表的方法来使用吧
把print改成以下代码
print(row[0])
看一下运行结果,果然不出所料,输出了第一列的数据
做个登录小实验,看一下成果,用for循环嵌套if判断
import csv
# 文件名
filename = 'User.csv'
# 打开文件
f = open(file=filename, mode='r', encoding='UTF-8')
# 创建csv读取文件实例
csv_f = csv.reader(f)
# 输入账号密码
username = input('请输入账号:')
password = input('请输入密码:')
# 遍历判断
for row in csv_f:
if username == row[0] and password == row[1]:
print('登录成功!')
break
else:
continue
运行一下,输入账号密码,成功了:
字典读取
使用DictReader,代码如下
import csv
# 文件名
filename = 'User.csv'
# 打开文件
f = open(file=filename, mode='r', encoding='UTF-8')
# 创建字典读取csv文件实例
csv_f = csv.DictReader(f)
# 遍历
for row in csv_f:
print(row)
运行一下,看下结果
把print改成以下代码
print(row['账号'])
再运行一下,输出了账号这一列
写入CSV文件
列表写入
写入csv文件,用writerow写入一行数据,代码如下
import csv
# 文件名
filename = 'User.csv'
# 打开文件
f = open(file=filename, mode='a', encoding='UTF-8', newline='')
# 创建csv写入文件实例
csv_f = csv.writer(f)
# 定义要写入的数据
a = [111111, 222222]
# writerow写入一行
csv_f.writerow(a)
运行一下看下如何
用writerows写入多行数据,代码如下
import csv
# 文件名
filename = 'User.csv'
# 打开文件
f = open(file=filename, mode='a', encoding='UTF-8', newline='')
# 写入csv文件
csv_f = csv.writer(f)
# 定义要写入的数据
b = [
(111111, 222222),
(333333, 444444)
]
# writerows写入多行
csv_f.writerows(b)
运行一下看下结果,写入了两行数据
做个注册小实验,看一下成果如何
import csv
# 文件名
filename = 'User.csv'
# 以追加写方式打开文件
f = open(file=filename, mode='a', encoding='UTF-8', newline='')
# 创建写入csv文件实例
csv_f = csv.writer(f)
# 输入账号密码
username = input('请输入账号:')
password = input('请输入密码:')
# 定义要写入的数据
data = [username, password]
# writerow写入一行
csv_f.writerow(data)
print('注册成功!')
运行一下,输入账号密码,看下表格
字典写入
使用csv.DictWriter
用writerow写入一行数据,代码如下
import csv
# 文件名
filename = 'User.csv'
# 以追加写方式打开文件
f = open(file=filename, mode='a', encoding='UTF-8', newline='')
# 定义表头字段
header = ['账号', '密码']
# 定义要写入的数据
data = {'账号': '111111', '密码': '222222'}
# 创建csv写入文件实例
csv_f = csv.DictWriter(f, header)
# writerow写入一行数据
csv_f.writerow(data)
运行一下,看下结果
用writerows写入多行数据,代码如下
import csv
# 文件名
filename = 'User.csv'
# 以追加写方式打开文件
f = open(file=filename, mode='a', encoding='UTF-8', newline='')
# 定义表头字段
header = ['账号', '密码']
# 定义要写入的数据
data = [
{'账号': '111111', '密码': '222222'},
{'账号': '333333', '密码': '444444'}
]
# 创建csv写入文件实例
csv_f = csv.DictWriter(f, header)
# writerows写入多行
csv_f.writerows(data)
运行结果如下
需要注意的是header表头数据不能写成字典的格式也就是{ },必须要写成列表的格式[ ],不要输错符号,否则会导致写入的列数据会出问题,也就是下面这种情况。
好了,以上就是csv库的使用。