Day19-继承和csv文件操作

本文详细介绍了Python中的继承概念,包括父类和子类的定义,以及如何在子类中添加属性和方法。同时,文章探讨了CSV文件的读写操作,展示了使用csv模块以列表和字典形式处理文件内容的方法。此外,还讲解了虚拟环境的创建和使用,强调了为每个项目创建独立虚拟环境的重要性。最后,提到了Excel文件的读取,使用openpyxl库获取工作簿、工作表和单元格内容的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day19-继承和csv文件操作

1、继承

继承就是让子类直接拥有父类属性和方法
父类:被继承者(又叫超类)
子类:继承者
class 类名(父类1,父类2,父类3,…):
类的说明文档
类的内容
注意:如果定义累的时候没有写继承,那么这类默认继承Python的基类:object
class 类名:==class 类名(object)

class A:

​ x = 10

def __init__(self):
    self.y = 20

def func1(self):
    print('对象方法')

@classmethod
def func2(cls):
    print('类方法')

@staticmethod
def func3():
    print('静态方法')

class B(A):
pass

print(B.x)

b = B()
print(b.y)

b.func1()
B.func2()
B.func3()

在子类中添加内容
添加类属性和方法
直接在子类中定义新的类属性和新的方法
添加对象属性
添加对象属性的时候如果还想要继承父类的对象属性,必须在子类的__init__方法中通过super()去调用父类的__init__方法

class C(A):
m = 1000

def __init__(self):
    # 手动调用当前类的父类的__init__方法
    super().__init__()
    self.z = 199

def func11(self):
    print('C的对象方法')

@classmethod
def func22(cls):
    print('C的类方法')

@staticmethod
def func33():
    print('C的静态方法')

print(C.x)
print(C.m)

c = C()
c.func1()
c.func11()

C.func2()
C.func22()

C.func3()
C.func33()

print(c.y)
print(c.z)

2、csv文件读操作

import csv
csv文件操作必须以行为单位
以列表为单位获取每一行内容
创建列表对应的reader获取文件内容,返回一个迭代器,迭代器中的元素就是每一行内容对应的列表
csv.reader(文件对象)

f=open (‘‘文件名’’, encoding=‘utf-8’, newline=’ ')

(file_content)reader=csv.reader(f)

通过迭代器获取每一行内容对应的元素

print(next(reader))

print(list(reader))

f.close( )

以字典为单位获取每一行内容

csv.DictReader(文件对象)

with open(‘电影.csv’, encoding=‘utf-8’, newline=‘’) as f:

直接将第一行内容的数据作为键

reader = csv.DictReader(f)

print(next(reader))

 将第一行内容看成普通数据,将指定的数据作为每一列的键
reader = csv.DictReader(f, fieldnames=['name', 'director', 'star', '上映时间', '国家', '类型','评分','评论人数','封面地址'])
next(reader)
print(next(reader))

3、csv文件写操作

以列表为单位写入一行内容

创建writer对象

writer=csv.writer(文件对象)

with open(‘file/data, csv’ , ‘w’,encoding=‘utf-8’ , newline=’ ') as f:

writer=csv.writer(f)

将数据写入文件中
一次写一行

​ writer.writerow([‘姓名’, ‘数学’, ‘语文’, ‘英语’])
​ writer.writerow([‘小明’, 98, 92, 87])

一次写多行

​ writer.writerows([
​ [‘张三’, 87, 56, 66],
​ [‘小花’, 99, 60, 87],
​ [‘Tom’, 67, 82, 80]
​ ])

以字典为单位写入一行内容

创建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': 18, 'tel': '110', 'gender': '男'})

 一次写多行
writer.writerows([
    {'name': '小花', 'age': 20, 'tel': '232111', 'gender': '女'},
    {'name': '小红', 'age': 23, 'tel': '2342', 'gender': '女'},
    {'name': '李华', 'age': 30, 'tel': '3523214', 'gender': '男'}
])

4、虚拟环境

系统环境 - 为了让计算机能够运行Python程序,就必须在计算机中安装Python环境,通过软件安装的这个环境就是系统环境,环境中主要包含解释器和已经安装的所有的第三方库
虚拟环境 - 在计算机已经安装了Python环境的前提下,我们可以通过指令或者相关软件创建出新的Python环境(这个环境就是虚拟环境)
创建虚拟环境的建议
工作的时候:一个项目一个虚拟环境,并且必须将虚拟环境放在工程目录中
学习的时候:一类项目一个虚拟环境,不同类型的环境全部放在一个文件夹中

5、excel文件读操作

import openpyxl
打开excel文件创建文件对应的工作簿
openpyxl.open(文件路径)
openpyxl.load_workbook(文件路径)

workbook = openpyxl.open(‘files/2020年销售数据.xlsx’)

获取工作表
获取所有的工作表的表名: 工作簿对象.sheetnames

names = workbook.sheetnames
print(names)

获取工作表对象
获取活跃表: 工作簿对象.active

sheet1 = workbook.active
print(sheet1)

获取指定表: 工作簿对象[表名]

t_task = workbook[‘task’]
print(t_task)

t_data = workbook[‘data’]
print(t_data)

获取工作表内容
获取最大行数和最大列数

工作表.max_row

工作表.max_column

print(t_task.max_row, t_task.max_column)
print(t_data.max_row, t_data.max_column)

获取单元格: 工作表.cell(行号, 列号)
注意:行号和列号都是从1开始的数据

cell1 = t_data.cell(1, 1)
print(cell1)

cell2 = t_data.cell(7, 5)
print(cell2)

获取单元格内容: 单元格对象.value

print(cell1.value)
print(cell2.value)

获取第2行所有的数据

for x in range(1, t_data.max_column+1):
print(t_data.cell(2, x).value, end=‘,’)
print()

获取第3列所有的数据

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值