day19 继承和csv文件操作
一、继承
1、继承就是让子类直接拥有父类属性和方法
父类:被继承者(又叫超类)
子类:继承者
2、继承的语法
class 类名(父类1,父类2,父类3…):
类的说明文档
类的内容
注意:如果定义类的时候没有写继承,那么这类用继承python的基类:object
Class 类名 == class 类名(object):
3、在子类中添加内容
1)添加类属性和方法
直接在子类中定义新的类属性和新的方法
2)添加对象属性
添加对象属性的时候如果还想要继承父类的对象属性,必须在子类的—init—方法
中通过super()去调用父类的—init—方法
二、csv文件读操作
1、csv文件操作必须以行为单位
1、以列表为单位获取每一行内容
-
创建列表对应的reader,获取文件内容,返回一个迭代器,迭代器中的元素就是每一行内容打印的列表 csv.reader(文件对象)
import csv f = open('电影.csv',encoding='utf-8',newline='') reader = csv.reader(f) print(reader) print(next(reader)) #获取第一行内容 print(list(reader)) f.close()
2、以字典为单位获取每一行内容
import csv
with open('电影.csv',encoding='utf-8',newline='') as f:
#直接将第一行内容的数据作为键
reader = csv.DictReader(f)
print(next(reader))
三、csv文件写操作
1、以列表为单位写入一行内容
-
创建write对象 writer = csv.writer(文件对象)
-
将数据写入文件中 一次写一行/一次写多行
with open('files/data.csv','w',encoding='utf-8',newline='') as f : writer = csv.writer(f) writer.writerow(['姓名','数学','语文','英语']) writer.writerow(['小明',90,23,87]) writer.writerows([ ['小花',79,90,94], ['小虎',94,23,87], ['小六',88,67,78] ])
2、以字典为单位写入一行内容
-
创建writer对象 csv.Dictwriter(文件对象,键列表)
-
将数据写入文件中 一次写一行/一次写多行
with open('files/学生信息.csv','w',encoding='utf-8',newline='')as f: writer = csv.DictWriter(f,['name','age','tel','gender']) #将字典的键作为第一行内容写入文件 writer.writeheader() #一次写一行 writer.writerow({'name':'小明','age':16,'tel':110,'gender':'女'}) writer.writerows([ {'name':'小宏','age':18,'tel':120,'gender':'男'}, {'name':'小文','age':15,'tel':160,'gender':'女'} ])
四、虚拟环境
1、系统环境
为了让计算机能够运行python程序,就必须在计算机中安排python环境,通过软件安装的这个环境就是系统环境
环境中主要包含解释器和已经安装的所有的地方库
2、虚拟环境
在计算机已经安装了python环境的前提下,我们可以通过指令或者相关软件创建的python环境(这个就是虚拟环境)
3、创建虚拟环境的建议
工作的时候:必须是一个项目一个虚拟环境,并且必须将虚拟环境放在工程目录中
五、excel文件读操作
1、打开ecxel创建工作簿
- Openpyxl.open(文件路径)
- Openpyxl.load_workbook(文件路径)
2、获取工作表
- 获取所有的工作表的表名:工作簿对象.sheetnames
- 获取工作表对象
- 获取活跃表:工作簿对象.active
- 获取指定表:工作簿对象[表名]
3、获取工作表内容
- 获取最大行数和最大列数 工作表.max_row 工作表.max_column
- 获取单元格:工作表.cell(行号,列号) - 用数字表示
- 行号和列号都是从1开始的数据
- 获取单元格内容:单元格对象.value
import openpyxl
workbook = openpyxl.open('files/2020年销售数据.xlsx')
names = workbook.sheetnames
print(names)
sheet1 = workbook.active
print(sheet1)
t_task = workbook['task']
print(t_task)
t_data = workbook['data']
print(t_data)
print(t_data.max_row,t_data.max_column)
cell1=t_data.cell(7,5)
print(cell1)
print(cell1.value)
for x in range(1,t_data.max_column+1):
print(t_data.cell(2,x).value)
for x in range(2,t_data.max_row +1):
print(t_data.cell(x,3).value)
for row in range(1,t_data.max_row + 1):
for col in range(1,t_data.max_column +1):
print(t_data.cell(row,col).value,end=',')
print()