来这个平台也有几个月了都是来向各位前辈学习的,也没勇气在这个平台上写点啥。以前学点东西都是记在笔记本上的,记起来也不太方便尤其是记录代码。那就借助这个平台做个笔记吧,方便以后学习翻阅,还能得到各位前辈和高手的指点!刚开始写也没啥思路和经验请各位多指点。废话不多说了,记个笔记吧。
今天学的是csv的文件存储,csv,全称为Comma-Separated Values,中文叫做逗号分隔值或者字符分割值。csv以纯文本形式存储数据,是一个字符序列可以由任意数目的记录组成。各条记录以某种换行符隔开。每条记录都有若干字段组成。字段间的分隔符是其他字符或字符串。最常见的是逗号或制表符。
csv的优点
csv中不包含数值、公式和格式等结构简单清晰。
python将数据写入csv和读取数据
一.写入及写入步骤:
import csv 天才第一步首先导入csv库,内置 无需额外安装。
1.列表类型写入:
第一步 需要实例化一个写入对象
第二步 写入单行数据 表头
第三步 写入多行数据
下面是实例和代码。
import csv # s内置 无需额外安装
header = ['书名', '作者', '类型']
book_row_ls = [
['网游:开局防御加满,化身移动要塞', '谒始', '游戏竞技'],
['全球废土:我以机械比肩神明', '岐峰','科幻末世'],
['民间诡梦实录','王诡一', '都市小说'],
['奶包三岁半,我是全豪门团宠', '惊颜', '现代言情'],
['万恶的考试和资本', '白日不栽柳', '浪漫青春']
]
newline='' #取消每一行的空行
with open('book.csv', 'w', encoding='utf-8', newline='') as f:
#第一步 需要实例化一个写入对象 传入文件对象
writer = csv.writer(f)
# 第二步 写入单行数据 表头
writer.writerow(header)
#第三步 写入多行数据
writer.writerows(book_row_ls)
2.字典类型写入 不写了直接上实例吧。
字典写入
header = ["book_name", 'author_name', 'book_type']
book_row_ls = [
{'book_name':'网游:开局防御加满,化身移动要塞', 'author_name':'谒始', 'book_type':'游戏竞技'},
{'book_name':'全球废土:我以机械比肩神明', 'author_name':'岐峰','book_type':'科幻末世'},
{'book_name':'民间诡梦实录','author_name':'王诡一', 'book_type':'都市小说'},
{'book_name':'奶包三岁半,我是全豪门团宠', 'author_name':'惊颜', 'book_type':'现代言情'},
{'book_name':'万恶的考试和资本', 'author_name':'白日不栽柳', 'book_type':'浪漫青春'}
]
with open('book-dict.csv', 'w', encoding='utf-8', newline='') as f:
# 第一步 需要实例化一个写入对象 传入文件对象与表头
writer = csv.DictWriter(f, header)
# 第二步 写入单行数据 表头
writer.writeheader()
# 第三步 写入多行数据
writer.writerows(book_row_ls)
二.读取csv数据步骤:
import csv
# 列表写入的读取方式
with open('book.csv', 'r',encoding='utf-8') as f:
# 第一步 实例化一个读取对象 传入的参数是文件对象
reader = csv.reader(f)
# print(reader) # <_csv.reader object at 0x0000019DB6C88760>
header = next(reader) # 读取表头 第一行 然后不再放回reader当中
# print(header)
# next(reader)
# next(reader)
# next(reader)
for row in reader:
print(row)
字典写入的读取方式
with open('book-dict.csv', 'r',encoding='utf-8') as f:
reader = csv.DictReader(f)
# 字典写入的方式 读取的时候是不会出现表头的 所以不需要next()
# Ord...({'book_name': '全球废土:我以机械比肩神明', 'author_name': '岐峰', 'book_type': '科幻末世'})
# dict()
for row in reader:
print(row)
with open('book.csv', 'r',encoding='utf-8') as f:
reader = csv.DictReader(f)
# 字典写入的方式 读取的时候是不会出现表头的 所以不需要next()
# Ord...({'book_name': '全球废土:我以机械比肩神明', 'author_name': '岐峰', 'book_type': '科幻末世'})
# dict()
for row in reader:
print(row)
第一次写没有啥经验希望大家多多指导,错误之处请帮忙指正。