1.打开文件 打开文件:将文件从磁盘(硬盘)中读取到内存中 语法: open(file, mode='r', encoding=None)
参数file:是要打开的文件,类型是字符串,文件的路径可以是相对路径,也可以是绝对路径(从根目录开始书写的路径),建议使用相对路径(相对于当前代码文件所在的路径,./ ../ ) 参数mode:默认参数(缺省参数),表示的是打开文件的方式 r: read 只读打开 W: write 只写打开 a:append 追加打开,在文件的末尾写入内容 参数encoding: 编码方式,(文字和二进制如何进行转换的) gbk: 将一个汉字转换为2个字节二进制 utf-8: 常用,将一个汉字转换为3个字节的二进制 返回值:返回的是文件对象,后续对文件的操作,都需要这个对象
2.读或者写文件
3.关闭文件 关闭文件:将文件占用的资源进行清理,同时会保存文件,文件关闭之后,这个文件对象就不能使用了 文件对象. close()
写文件例子: f = open ('a.txt', 'w', encoding='utf-8') f.write('good\n') f.write('study') f.close()
读文件例子: f = open ('a.txt', 'r', encoding='utf-8') bu=f.read() print(bu) f.close()
with open() :不用自己书写关闭文件的代码,会自动进行关闭 with open(file,mode,encoding='utf-8') as 文件对象: f.write('study') 例子: with open('a.txt','a',encoding='utf-8') as f: f.write('ni ne?')
with open('b.txt','w',encoding='utf-8') as n: n.write('111\n222\n333\n444\n555') 方法1: with open('b.txt','r',encoding='utf-8') as n: print(n.readline()) print(n.readline())
方法2:for i in n: print(i,end='')
json文件也是一个文本文件,就可以直接使用read()和write()方法去操作文件,只是使用这两个方法,不方便,所以对json 文件有自己独特的读取和写入的方法; 常用在在做测试的时候,将测试数据定义为json文件格式,使用代码读取json文件,即读取测试数据,进行传参(参数化)
json基于文本,独立于语言的轻量级的数据交换格式; 一基于文本,是一个文本文件 -独立于语言,不是某个语言特有的,每种编程语言都可以使用的 -轻量级,相同的数据,和其他格式相比,占用的大小比较小 一数据交换格式,后端程序员给前端的数据
数字类型----> int float string字符串-str 布尔类型true, false -----> True, False null ----> None ;
{ "name": "xiaoming", "age": 18, "like": ["music", "game", "shopping"], "address": {"contry": "china", "city": "shanghai"} }
import json with open('a.json','r',encoding='utf-8') as a: result = json.load(a) print(result) print(type(result)) print(result.get('address').get('city'))
例子文件: [ { "desc": "正确的用户名密码", "username": "admin", "password": "123456", "expect": "登录成功" }, { "desc": "错误的用户名密码", "username": "root", "password": "123456", "expect": "登录失败" }, { "desc": "错误的密码", "username": "admin", "password": "123456", "expect": "登录失败" } ] 读取: import json
def read_login(): list1 = [] with open('a.json','r',encoding='utf-8') as f: login=json.load(f) for i in login: tuple1=(i.get('username'), i.get('password'), i.get('expect')) list1.append(tuple1) return list1
文件对象.write(字符串)不能直接将 Python 的列表和字典作为参数传递想要将Python 中的数据类型存为json文件,需要使用json提供的方法,不再使用write 步骤: 1.导包import json 2.写(W)方式打开文件 3.写入 json.dump(python中的数据类型,文件对象)
例子: import json mylist=[('小明', '18岁', '男'), ('hong', '17岁', '女')] with open('f.json','w',encoding='utf-8') as f: json.dump(mylist, f, ensure_ascii=False,indent=3)
try: num = input('输入数字:') num = int(num) a=10/num print(a) except ValueError: print('指定错误')
except Exception as e: print(f'所有出错的{e}') else: print('没有出错执行') finally: print('不管有没有报错都执行')
异常传递是Python 中已经实现好了,我们不需要操作,我们知道异常会进行传递, 异常传递:在函数嵌套调用的过程中,被调用的函数, 发生了异常,如果没有捕获,会将这个异常向外层传递。... 如果传到最外层还没有捕获,才报错
def add(a,b): return a+b if name== 'main': print(add(1, 2)) print(add(2, 2)) else: pass
import test2 print(test2.add(100, 200))