csv模块的简单使用

csv格式存储数据,读写比较方便,易于实现,文件也会比Excel文件小。但csv文件缺少Excel文件本身的很多功能,比如不能嵌入图像和图表,不能生成公式,下面是基本的代码。

安装方法:window电脑:在终端输入命令:pip install csv,按下enter键;mac电脑:在终端输入命令:pip3 install csv,按下enter键

读取数据

import csv
# print(dir(csv))
with open('Z16.csv','r',newline='',encoding='UTF-8-sig') as f1:
    reader = csv.reader(f1)
    for row in reader:
       print(row)

追加数据

import csv
with open('test.csv','a',newline='',encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['4', '猫砂', '25', '1022', '886'])
    writer.writerow(['5', '猫罐头', '18', '2234', '3121'])

总结:

csv
0:创建对象 open()函数
1:创建对象 writer()函数
2:写入内容
3:关闭文件


openpyxl模块的简单使用

至于Excel文件,不用我多说你也知道就是电子表格。它有专门保存文件的格式,即xls和xlsx(Excel2003版本的文件格式是xls,Excel2007及之后的版本的文件格式就是xlsx)。

提醒:我们得先提前安装好openpyxl模块。课程的终端是已经安装好了,如果你想要在本地操作的话,就需要在本地上安装。(安装方法:window电脑:在终端输入命令:pip install openpyxl,按下enter键;mac电脑:在终端输入命令:pip3 install openpyxl,按下enter键)

代码示例(写入):

import openpyxl 
#引用openpyxl 。
wb = openpyxl.Workbook()
#利用openpyxl.Workbook()函数创建新的workbook(工作薄)对象,就是创建新的空的Excel文件。
sheet = wb.active
#wb.active就是获取这个工作薄的活动表,通常就是第一个工作表。
sheet.title = 'new title'
#可以用.title给工作表重命名。现在第一个工作表的名称就会由原来默认的“sheet1”改为"new title"。
sheet['A1'] = '漫威宇宙' 
#把'漫威宇宙'赋值给第一个工作表的A1单元格,就是往A1的单元格中写入了'漫威宇宙'。
row = ['美国队长','钢铁侠','蜘蛛侠']
#把我们想写入的一行内容写成列表,赋值给row。
sheet.append(row)
#用sheet.append()就能往表格里添加这一行文字
成功写入后,我们千万要记得保存这个Excel文件,不然就白写啦!
wb.save('Marvel.xlsx')
#保存新建的Excel文件,并命名为“Marvel.xlsx”

如果想写入多行

rows = [['美国队长','钢铁侠','蜘蛛侠'],['是','漫威','宇宙', '经典','人物']]
#先把要写入的多行内容写成列表,再放进大列表里,赋值给rows。
for i in rows:
    sheet.append(i)
#遍历rows,同时把遍历的内容添加到表格里,这样就实现了多行写入。
print(rows)
#打印rows

总结:

Excel文件写入的步骤
0:创建工作普
1:获取工作表
2:操作单元格
3:保存工作普

读取:

#读取的代码:
wb = openpyxl.load_workbook('Marvel.xlsx')
	#调用openpyxl.load_workbook()函数,打开“Marvel.xlsx”文件。
sheet = wb['new title']
	#获取“Marvel.xlsx”工作薄中名为“new title”的工作表。
sheetname = wb.sheetnames 
	#sheetnames是用来获取工作薄所有工作表的名字的,如果你不知道工作薄到底有几个工作表,就可以把工作表的名字都打印出来。
print(sheetname)
A1_cell = sheet['A1']
A1_value = A1_cell.value
print(A1_value)
	#把“new title”工作表中A1单元格赋值给A1_cell,再利用单元格value属性,就能打印出A1单元格的值。