模块的导入
请你运行下方代码,获取【各等级会员表】文件夹下的所有文件名。
# 导入 os 模块
import os
# 设置文件夹路径
folder_path = './工作/各等级会员表/'
# 获取所有文件名并打印
file_names = os.listdir(folder_path)
print(file_names)
# 导入 os 模块 listdir() 函数
from os import listdir
# 设置文件夹路径
folder_path = './工作/各等级会员表/'
# 获取所有文件名并打印
file_names = listdir(folder_path)
print(file_names)
代码题 6 - DictWriter() 类
下面有一段代码,功能是向一个 csv 表格中添加通讯录信息,请你帮忙补充第 13、21、24 行代码,实现代码功能。
# 导入模块
import csv
# 设置表头名称
head = ['姓名', '职业', '电话']
# 打开文件对象
f = open('addressbook.csv', 'w', encoding='utf-8')
# 实例化类 DictWriter() 得到 DictWriter 对象
writer = csv.DictWriter(f, fieldnames=head)
# 使用 writeheader()方法,写入表头
writer.writeheader()
# 设置通讯录信息
data1 = {'姓名': '陈知枫', '职业': '学生', '电话': '13400000001'}
data2 = {'姓名': '林月娜', '职业': '程序员/老师', '电话': '13211111112'}
data3 = {'姓名': '闪光公寓管家', '职业': '', '电话': '15022222223'}
# 使用 writerow() 写入 data1
writer.writerow(data1)
# 使用 writerows() 写入 data2、data3
writer.writerows([data2,data3])
# 关闭文件
f.close()
你可能会有疑问,为何 open() 函数
中路径是这个样子:'addressbook.csv'
。
这是因为当前运行的代码文件与【addressbook.csv】文件在同一级目录下时,'./addressbook.csv'
可以简写为 'addressbook.csv'
。
接下来我们就来读取这个 csv 文件,查看是否已经完整写入了通讯录信息吧。
代码题 7 - DictReader() 类
请补充出第 7 行代码,实现查看 csv 文件中每行数据的功能。
# 导入模块
import csv
# 以自动关闭的方式打开文件
with open('addressbook.csv', 'r', encoding='utf-8') as f:
# 以字典的形式获取 csv 文件信息
reader=csv.DictReader(f)
# 打印字典中的行数据
for row in reader:
print(row)
以上两道题的知识点包含了 csv 模块的 DictWriter() 类
中 writeheader()
、writerow()
、writerows()
三种方法,还通过 DictReader() 类
的实例化,去读取数据。
代码实战
晓薇是一名服装店店员,她有一项工作职责是将各等级会员表中的信息录入到会员总表。
首先,她要分别查看服装店的会员总表以及各个等级的会员表。
然后,将各个等级的会员表信息汇总录入到会员总表。
# 导入模块
import os
import csv
# 设置文件夹路径
folder_path = '../工作/各等级会员表/'
# 获取所有文件名
file_list = os.listdir(folder_path)
# 遍历所有文件
for file in file_list:
# 通过文件夹拼接文件名的方式,获取文件路径
file_path = folder_path + file
# 打印提示内容
print(file+' 的内容是:')
# 以自动关闭的方式打开文件
with open(file_path, 'r', encoding='utf-8') as f:
# 以字典的形式获取 csv 文件信息
file_reader = csv.DictReader(f)
# 打印字典数据
for row in file_reader:
print(row)
运行结果: