栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 类 文件读写与模块

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 类 文件读写与模块

初始化类的属性

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 leectn")
    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 ***

调用方式: 函数名或类名

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/503838.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号