字典:
# 字典循环: dic.keys() | dic.values() | dic.items()for k, v in dic.items(): print(k, v) # 字典嵌套# [1, 2, 3]# {k1:v1, k2:v2}info = { '学生们': [ { 'name': 'Bob', 'age': 18, }, { 'name': 'Tom', 'age': 18, } ], '老师们': [ { }, { } ],}for k, v in info.items(): if k == '学生们': for stu in v: print(stu)
字符编码
# ascii => 各国自己独有的编码(GBK), 兼容ascii => unicode -- utf-8|utf-16# 以后文本类型数据采用编码:utf-8
# python2默认采用ascii编码表# python3默认采用utf-8# 在文件最上方可以通过 # encoding: 编码名来规定文件解码的编码表 -- 文件头# 在py3以后的开发环境,所有文件采用utf-8编码存储,py3默认也是采用utf-8读取文件,所有可以省略文件头
# u'' = encode('utf-8') > b''# b'' = decode('utf-8') > u''
文件操作
# 打开文件f = open(r'文件路径', '文件的操作模式', encoding='utf-8')# 使用文件f.read()f.write()# 关闭文件f.close()
基础读
# 文件操作模式:r -- 文件必须提前存在,否则抛出异常# 1.按字符进行操作# 2.read():读所有内容 | read(10):对指定字符长度# 3.readline(): 一次读一行# 4.readlines(): 将文件一行一行读到list中f = open(r'文件路径', 'r', encoding='utf-8')
基础写
# 文件操作模式:w -- 文件不存在就新建,存在就清空# 1.按字符进行操作# 2.write('写入第1行\n写入第2行\n')# 3.flush(): 将之前写入到内存中的数据刷新到硬盘中# 4.writelines(list):list中存放的是一条条文件内容,需要明确\n标识换行 writelines(['111\n', '222\n'])
with语法
# 操作系统对文件的支持权由with自动管理释放with open('file.txt', 'r', encoding='utf-8') as f: # 不需要明文书写f.close() data = f.read() print(data)
操作模式
'''主模式:r: 文件必须存在的读w: 文件无需存在的写,无创建,有清空再写a: 文件无需存在的写,无创建,有在文件最后追加写从模式:t: 按文本字符操作数据(默认模式)b: 按文本字节操作数据+: 可读可写了解:x:新建文件写,如果文件已存在,抛异常''''''rt | wt | at == r | w | arb | wb | abrt+ | wt+ | at+ == r+ | w+ | a+rb+ | wb+ | ab+'''
游标操作
# 大前提:seek一定在b模式下进行操作,因为seek移动是按字节进行操作# f.seek(偏移量,操作位置)f.seek(5, 0) # 从开始往后偏移5个字节f.seek(-1, 1) # 从当前位置向前偏移1个字节f.seek(1, 1) # 从当前位置向后偏移1个字节f.seek(-5, 2) # 从末尾向前偏移5个字节
文件的遍历
# 最常用读写with open('source', 'r', encoding='utf-8') as f1, open('target', 'w', encoding='utf-8') as f2: for line in f1: f2.write(line)
函数入门
# 函数:用来完成特定功能的代码块,类似于工具,可以重复不但的去使用# 为什么要有函数# 1. 避免代码的冗余# 2. 让程序代码结构更加清晰# 3. 让代码具有复用性,便于维护# 定义函数的语法''' def 函数名(参数列表): 函数体 return 返回值'''# 调用函数的语法# 函数名(参数列表)
函数四部分
'''1. 函数名:使用该函数的依据2. 函数体:完成功能的代码块3. 返回值:功能完成的反馈结果4. 参数:完成功能需要的条件信息'''