import csv
# 读取csv,以数组方式读取
def csv_read(path):
with open(path, 'r', encoding='utf-8') as f:
cf = csv.reader(f) # 创建csv.reader对象
print(cf.dialect) # 返回其dialect
for line in cf:
print(line) # 读取的内容,列表格式
print(cf.line_num) # 返回读入的行数
# writer.writerow(row) 方法,写入一行数据
# writer.writerows 方法,写入多行数据
# writer.dialect 只读属性,返回其dialect
def csv_write(path):
rows = [('mike', '13', 'male'), ('Bob', '77', 'male')]
with open(path, 'w', newline='') as f:
writer = csv.writer(f, dialect='excel')
writer.writerows(rows) # 写入多行
print(writer.dialect)
# 以字典方式读取
def csv_dict_reader(path):
with open(path, 'r', encoding='utf-8') as f:
cf = csv.DictReader(f)
print(cf.dialect) # 返回其dialect
print(cf.fieldnames) # 返回标题名
for line in cf:
print(line)
print(cf.line_num) # 返回读入的行数
# csvwriter.writerow(row) 将row写入writer的文件对象,根据当前方言进行格式化。支持迭代
# csvwriter.writerows(rows) 将行中的所有元素写入编写器的文件对象,并根据当前方言进行格式化。支持迭代
# DictWriter.writeheader() 写入标题字段名
def csv_dict_write(path):
headers = ['学号', '姓名', '性别', '班级', '语文', '数学', '英语']
rows = [{'学号': '100001', '姓名': '小鱼', '性别': '男', '班级': '1班', '语文': '72', '数学': '82', '英语': '85'},
{'学号': '100002', '姓名': '小高', '性别': '女', '班级': '6班', '语文': '74', '数学': '88', '英语': '85'}
]
with open(path, 'w', newline='') as f:
cf = csv.DictWriter(f, headers)
cf.writeheader()
cf.writerows(rows)
def write_csv3(csvfilepath):
headers = ['学号', '姓名', '性别', '班级', '语文', '数学', '英语']
rows = [{'学号': '100010', '姓名': '小南', '性别': '男', '班级': '1班', '语文': '70', '数学': '89', '英语': '85'},
{'学号': '100011', '姓名': '小风', '性别': '女', '班级': '6班', '语文': '79', '数学': '89', '英语': '85'}
]
with open(csvfilepath, 'w', newline='') as f:
f_csv = csv.DictWriter(f, headers, delimiter=',', quoting=csv.QUOTE_ALL)
f_csv.writerows(rows)
def write_csv4(csvfilepath):
# 注册分隔符
csv.register_dialect('mydialect', delimiter='*', quoting=csv.QUOTE_ALL)
headers = ['学号', '姓名', '性别', '班级', '语文', '数学', '英语']
rows = [{'学号': '100013', '姓名': '小北', '性别': '男', '班级': '1班', '语文': '70', '数学': '80', '英语': '85'},
{'学号': '100014', '姓名': '小琴', '性别': '女', '班级': '6班', '语文': '77', '数学': '89', '英语': '85'}
]
with open(csvfilepath, 'w', newline='') as f:
f_csv = csv.DictWriter(f, headers, dialect='mydialect')
f_csv.writerows(rows)
if __name__ == '__main__':
# csv_read('./assets/mfs.csv')
# csv_write('./assets/user')
# csv_dict_reader('./assets/mfs.csv')
# csv_dict_write('./assets/students')
# writecsv3('./assets/mmm')
# writecsv4('./assets/aaa')
pass
csv库使用
最新推荐文章于 2024-08-04 16:33:59 发布