python 类 文件读写与模块

2023-05-16

初始化类的属性

def __init__(self,name):   #self不能省
	self.name=name

注意:在定义类方法时,self不能省

继承

class 子类名(父类名):
class electtricCar(Car):
	def __init__(self,brand,model,year):
		super().__init__(brand,model,year) #声明继承父类属性 不需要加self了

子类自动继承父类的方法

重写父类的方法----多态

对方法重写时,方法名相同

文件的读写

文件的打开

whit open("文件路径","打开模式",encoding="操作文件的字符编码" ) as f:
	"对文件进行相应的读写操作"

使用with 块的好处:执行完毕后,自动对文件进行close操作

with open("D:\\1.txt","r",encoding="utf-8") as f:
    text=f.read()
    print(text)
    
1 2 3 4  5

程序与文件在同一文件夹,文件路径可简化成文件名

文件的打开模式

‘r’ 只读模式。如果文件不存在,返回异常FileNotFoundError,默认值;

‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖

‘x’ 创建写模式,文件不存在则创建,存在则返回异常FileExistError;

‘a’ 追加写模式,文件不存在则创建,存在则在文件最后追加内容;

‘b’ 二进制文件模式;

‘t’ 文本文件模式,默认值;

‘+’ 与r/w/x/a一同使用,在原功能的基础上增加同事读写的功能

字符编码:

utf-8 :万国码,覆盖范围广

gdk: 专门解决中文编码

文件的读取

读取整个文件:

f.read()

逐行进行读取—f.readline()**

with open("D:\\1.txt","r",encoding="utf-8") as f:
    while True:
        text = f.readline()
        if not text:    #如果文件为空就结束
            break
        else:
            print(text,end="")  #end 保留原文的换行符,使print的换行符不起作用

注意:空的行并不空,有一个换行符 ,每一行都有一个换行符

读入所有行,以每行为元素形成一个列表-----f.readlines()

文件的写入

with open("D:\\2.txt","w",encoding="utf-8") as f:
    f.write("hello \n")
    f.write("i am leect\n")
    f.write("what's your name?\n")

追加模式—a

将一个元素元素为字符串的列表整体写入文件—-f.writelines()

既读又写

“r+”

如果文件名不存在,则报错

指针在开始

要把指针移到末尾才能开始写,否则会覆盖前面的内容

with open ("D:\\1.txt","r+",encoding="utf-8") as f:
    for line in f:
        print(line) #全部读一遍之后,指针到达结尾
        
    f.seek(0,2)   #或者可以将指针移到末尾Ff.seek(偏移字节数,位置(0:开始;1:当前位置;2:结尾))
    f.writelines(text)

“w+”

若文件不存在,则创建

若文件存在,会立即清空原内容

“a+”

若文件不存在,则创建

指针指向最后,不会清空原内容

数据的存储与读取

通用的数据格式,可以在不同语言中加载和存储

1 csv 格式 (由逗号将数据分开的字符序列,可以由excel打开)

读取

with open("D:\\3.csv","r",encoding="utf-8") as f:
    ls=[]
    for line in f:     #逐行读取
        ls.append(line.strip("\n").split(","))  #去掉每行的换行读,然后用“,”进行分割
for res in ls:
    print(res)
    
['1,2,3,']
['4,5,6,']
['1,0,']

写入

with open("D:\\4.csv","w",encoding="utf-8") as f:
    for low in ls:
        f.write(",".join(low)+"\n")   #用逗号组合成字符串形式,末尾加换行符

也可以借助csv模块完成上述操作

json格式—常用来存储字典类型

写入 dump()

读取 load()

异常处理

常见异常的产生

1 除0 运算—ZeroDivisionError

2.找不到可读文件-----FileNotFoundError

3.值错误—ValueError

传入一个调用者不期望的值,即使这个值的类型是正确的

4 索引错误-----IndexError

下标超出序列边界

5 类型错误----TypeError

传入对象类型与要求不符

异常处理

try_ except

如果try中代码块顺利执行,except不被触发

如果try内代码块发生错误,触发except,执行except内代码块

python内置模块

时间库 time

随机库 random

容器数据类型 collection

迭代器函数 itertool

模块的导入

1.导入整个模块 import 模块名

调用方式: 模块名 . 函数名或类名

2 从模块中导入类或函数 ---- from 模块 import 类名或函数名

调用方式: 函数名或类名

3 导入模块中所有的类和函数 ----- **from 模块 import ***

调用方式: 函数名或类名

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 类 文件读写与模块 的相关文章

随机推荐