1,理解文件的作用 (文件是连续的字节序列)
保存数据
2,掌握文件的打开和关闭
F = Open(“文件路径、名”, “r”, encoding=”utf-8”)
F.close()
3,掌握向文件中写入数据的方式
F.write(“[20, 30]”)
4,掌握从文件中读取数据的方式
F.read(3)
F.readline()
F.readlines()
5,文件的操作
文件是连续的字节序列
文件的作用:保存数据
文件操作流程:
1、打开文件
2、操作文件
3、关闭文件
文件操作权限:
r 读权限 以r权限打开文件,如果没有这个文件,会报错,如果有这个文件则打开,不会清空数据
r+ 以可读可写的方式打开文件
rb 以二进制方式打开文件,只读
rb+ 以二进制方式打开文件,可读可写
w 写权限 以w权限打开文件,如果没有这个文件,会自动创建文件,如果有这个文件会清空文件的原有的数据
w+ 以可读可写的方式打开文件
wb 以二进制方式打开文件,只写
wb+ 以二进制方式打开文件,可读可写
a 追加权限 以a权限打开文件,如果没有这个文件,会自动创建文件,如果有这个文件则打开,不会清空数据
a+ 以可读可追加的方式打开文件
ab 以二进制方式打开文件,只追加
ab+ 以二进制方式打开文件,可读可追加
关于read的几个函数
f.read() # 可以传入一个数字,指定读取多少位
f.readline() # 读取一行数据
f.readlines() # 返回一个列表,每一行的数据就是列表中的每一个元素
6,掌握使用os模块完成对文件的重命名
Import os
Os.rename(旧文件名,新文件名)
7,掌握使用os模块删除一个文件
Os.remove(文件名)
8,掌握使用os模块完成创建文件夹
Os.mkdir(“文件夹名”)
9,文件和文件夹的操作
import os
os.path.exists("hello02.txt") # 判断目录下是否存在 hello02.txt这个文件
os.rename("hello.txt", "hello2.txt") # 重命名
os.remove("sound_backup.mp3") # 删除某个文件
print(os.getcwd()) # 获取当前 的操作目录
os.chdir("../") # 改变 当前的操作目录,为上一级
os.mkdir("test") # 创建文件夹
os.rmdir("test") # 删除空的文件夹
print(os.listdir()) # 返回一个列表,列表里面每一个元素是目录下所有的文件名和文件夹名
10,lambda表达式(匿名函数)
lambda 本质是一个函数
定义: lambda 形参: 返回值
调用的格式1:
fn = lambda a: a+2
fn(实参)
调用的格式2:
(lambda a: a+2)(实参)
# 用lambda表达式求两个数的和
# fn = lambda a, b: a+b
# print(fn(10, 20))
# print((lambda a, b: a+b)(20, 30))
# 求a和b中的最大值(了解)
# print((lambda a, b: a if a > b else b)(50, 30))
# 不定长参数的写法(了解)
# print((lambda *args: args)(10, 20, 30, "abc"))
# (10, 20, 30, '123') 以元组的形式输出。
#print((lambda *args, **kwargs: (args, kwargs))(10, 20, 30, "abc", name="python", age=27))
# ((10, 20, 30), {'name': 'python', 'age': 27})
11,(重点)列表推导式
列表推导式(列表生成式)
[返回值 for i in range(1, 6)]
[返回值 for i in range(1, 6) if 条件]
返回值的类型和格式,决定了,将来列表中每一个元素的类型格式
# lst = [i for i in range(1, 11)] # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 整形—>整形
# lst = [i+2 for i in range(1, 11)] # [3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# lst = [str(i) for i in range(1, 11)] # ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
# print(lst)
# lst = [i for i in range(1, 21) if i % 2 == 0] # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
12,集合
特点:
1、元素没有顺序之分(无序性) 不能通过下标来获取(字典也无序)
2、没有重复出现的数据
作用:
lst = [10, 20, 30, 50, 10]
tup = (10, 20, 30, 50, 10)
# print(list(set(lst))) # 集合的应用: 去重
# print(tuple(set(tup))) # 集合的应用: 去重
13,其他
a +=1与a = a+1 区别
a +=1与a = a+1等效但不等价
结果相等,但两个a所指向的地址空间已经发生了变化。
a = [10, 20]
# print(id(a))
# a += [30] # 等效于 a = a + 10
# print(id(a)) # 两个id一致,a的指向没有发生变化
a = [10, 20]
print(id(a))
a = a + [30]
print(id(a)) # 两个id不一致,a的指向发生变化了
补充知识点:求两个数的最大值
def fn(a, b):
# if a > b:
# return a
# else:
# return b
return a if a > b else b 可以用此代替上面4行
print(fn(10, 20))
相对路径:
../ 上一级的符号
/ 下一级 (windows)
./ 当前