1、文件操作
访问模式 | 解释 |
---|---|
r | 只读的方式打开文件,文件的指针放在开头,如果没有这个文件将会报错,这个是默认模式 |
w | 只写的方式打开文件,如果存在这个文件将会覆盖,不存在将创建新的文件 |
a | 追加的方式打开文件,如果存在这个文件将会在末尾追加,不存在将穿件新文件 |
r+ | 读写的方式打开文件,如果文件不存在,将报错 |
w+ | 读写方式打开,如果存在文件将会被覆盖,不存在将穿件新文件 |
a+ | 读写方式打开,如果存在将在末尾追加,不存在将报错 |
rb | 二进制读的方式打开文件, 通常用在图片和视频保存和读取当中 |
wb | 二进制写的方式打开文件,通常用在图片和视频保存和读取当中 |
ab | 以二进制格式打开文件用于追加 |
rb+ | 以二进制格式打开一个文件用于读写 |
wb+ | 以二进制格式打开一个文件用于读写,如果存在该文件会覆盖,不存在将创建新文件 |
ab+ | 以二进制格式打开一个文件用于追加 |
# with语句用于包装带有使用上下文管理器定义的方法的代码块的执行。
# read()会把文件的所有内容一次性读到内存
# readlines()一次读取全部内容,存放在列表里面
# readline()一次读取一行内容
# write()写入内容
# 读取文件时候尽量设置读取的编码格式,以防乱码;读取D盘下面的cs.txt文件
>>> with open('D:\cs.txt','r',encoding = 'utf-8') as f:
... print(f.read())
...
测试数据111
测试数据222
测试数据333
测试数据444
>>> with open('D:\cs.txt','r',encoding = 'utf-8') as f:
... print(f.readline())
...
测试数据111
>>> with open('D:\cs.txt','r',encoding = 'utf-8') as f:
... list = f.readlines()
... print(type(list))
... print(list)
...
<class 'list'>
['测试数据111\n', '测试数据222\n', '测试数据333\n', '测试数据444']
2、自定义函数和匿名函数
# 在函数内部可以写许多执行语句,使用函数可以提高代码复用率,代码逻辑清晰
# 无参函数
>>> def func():
... print("我是一个函数")
...
>>> func()
我是一个函数
# 有参函数
>>> def func(name,age):
... print("我的名字是%s,我的年龄是%d"%(name,age))
...
>>> func("张三",25)
我的名字是张三,我的年龄是25
# 含有返回值的函数
>>> def func(i):
... i = i + 20
... return i
...
>>> func(10)
30
# 匿名函数主要是通过lambda来实现,只能执行简单的语句
>>> func = lambda x, y : x + y
>>> func(1, 2)
3
3、类和对象
>>> class Person:
... def __init__(self,name,age): # 初始化方法,会自动把传过来的参数进行赋值
... self.name = name
... self.age = age
... def show_result(self): # 输出语句,还可以定义更多的函数
... print(f'我的名字是{self.name},年龄是{self.age}') # 在字符串的前面加上f,会自动把{}中的值进行替换
...
>>> person = Person("zs",20) # 创建对象
>>> person.show_result() # 调用里面的方法
我的名字是zs,年龄是20
>>> class Student(Person): # 继承Person类
... def __init__(self, name, age, number):
... super().__init__(name, age) # super()表示父类,可以使用他调用父类的方法
... self.number = number
... def show_result(self):
... super().show_result()
... print(f"我的学号是{self.number}")
>>> stu = Student("张三", 18, 11111) # 创建对象
>>> stu.show_result() # 调用里面的方法
我的名字是张三,年龄是18
我的学号是11111
# @classmethod把一个方法封装成类方法,例如在Person类中的show_result()方法前面加上该标志,就会变成类方法,可以直接通过类名直接调用Person.show_result(),也可以通过对象调用
# staticmethod把一个方法封装成静态方法,例如在Person类中的show_result()方法前面加上该标志,就会变成静态方法,可以直接通过类名直接调用Person.show_result(),也可以通过对象调用
python基础(五)------正则表达式re中的match、search、sub、compile、findall方法及使用