irpas技术客

Python文件操作及 json_鸢也_python 关闭json文件

网络投稿 5573

Python文件操作及 json

文章目录 Python文件操作及 json一、文件的介绍二、文件操作1、打开文件2、读或者写文件3、关闭文件4、使用 with open 打开文件5、按行读取文件内容 三、json文件的处理3.1 json的介绍3.2 json文件的语法3.3json文件的书写3.4 读取json文件

一、文件的介绍

计算机的?件,就是存储在某种?期储存设备上的?段数据作?:将数据?期保存下来,在需要的时候使?

计算机只认识 二进制(0,1)

文件中存储的数据都是以二进制(0,1)

可以根据?件中的?进制内容,能否使?记事本软件将其转换为?字,将?件分为两种:?本?件和?进制文件

文本文件

能够使?记事本软件打开(能够使?记事本转换为?字)txt, md, py, html, css, js, json

二进制文件

不能使用记事本软件打开的exe, mp3, mp4, jpg, png

我们操作的基本都是文本文件

二、文件操作

文件操作的步骤:

1、打开文件 2、度或者写文件 3、关闭文件 1、打开文件

打开?件:将?件从磁盘(硬盘)中读取到内存中

# 语法: open(file, mode='r', encoding=None) > 参数file: 是要打开的?件,类型是字符串,文件的路径可以是相对路径,也可以是绝对路径(带盘符的路径,也就是说根目录),建议使用相对路径(相对于当前代码?件所在的路径, ./ ../) > 参数mode:默认参数(缺省参数),表示打开文件的方式 > r: read 只读打开 > w: write 只写打开 > a:append 追加打开, 在文件的末尾写入内容 > 参数 encoding :编码方式,(?字和?进制如何进?转换的) > gbk: 将?个汉字转换为 2 个字节二进制 > utf-8: 常用,将?个汉字转换为 3 个字节的二进制 > 返回值:饭后的是文件对象,后续对文件的操作,都需要这个对象 2、读或者写文件

写文件

向?件中写?指定的内容.

前提:?件的打开?式是w或者a

文件对象.write( '写入文件的内容') # 返回值:写入文件的字符数,一般不关注 # 注意w方式打开文件: 1.文件不存在,会直接创建文件 2.文件存在,会覆盖原文件(将原文件中的内容清空) # 打开文件 f = open('a.txt','w',encoding='utf-8') # 写文件 f.write('不要焦虑\n') f.write('平复心情') # 关闭文件 f.close()

读文件

将?件中的内容读取出来 前提:?件的打开?式需要是 r 文件对象.read(n) # 参数 n 表示读取多少个字符,一般不写,表示读取全部内容 # 返回值:读取到的文件内容,类型 字符串 # 打开文件 f = open('a.txt','r',encoding='utf-8') # 读文件 buf = f.read() print(buf) # 关闭文件 f.close() 3、关闭文件

关闭?件:将?件占?的资源进?清理,同时会保存?件,?件关闭之后,这个?件对象就不能使?了

文件对象.close() 4、使用 with open 打开文件

好处就是,最后自行关闭文件,不用手动写 文件对象.close!!

with open('a.txt', encoding='utf-8') as 变量: # mode 默认是 'r' # 在缩进中去读取或者写??件 # 在缩进中去读取或者写??件,出缩进之后,文件会自动关闭 with open('a.txt','a',encoding='utf-8') as f: f.write('good good study') # a方式打开文件,文件不存在会创建文件,文件存在,在文件的末尾写入内容 5、按行读取文件内容

按?读取?件:?次读取??内容

文件对象.read() # with open('b.txt',encoding='utf-8') as f: # buf = f.readline() # print(buf) # print(f.readline()) # with open('b.txt',encoding='utf-8') as f: # for i in f: # print(i,end='') # read()和readline()读到文件末尾,返回一个空字符串,即长度为0 with open('b.txt',encoding='utf-8') as f: while True: buf = f.readline() if len(buf) == 0: break else: print(buf, end= '') 三、json文件的处理

json?件也是?个?本?件,就可以直接使?read()和write()?法去操作?件,只是使?这两个?法,不?便,所以对json?件有??独特的读取和写?的?法

常?在做测试的时候,将测试数据定义为json?件格式,使?代码读取json?件,即读取测试数据,进?传参(参数化)

3.1 json的介绍

json基于?本,独?于语?的轻量级的数据交换格式

基于文本,是一个文本文件,不能包含图?,?视频等独立于语言,不是某个语言特有的,每种编程语?都可以使?的轻量级,相同的数据,和其他格式相比,占用的格式比较小数据交换格式,后端程序员,给前端的数据(html,json,xml) 3.2 json文件的语法

1、json 文件的后缀是 .json

2、json 中的主要数据类型为 对象({} 类似于Python 的字典)和 数组([ ],类似python 中的列表),对象和数组可以互相嵌套

3、?个json?件是?个对象或者数组(即json?件的最外层要么是?个{},要么是?个数组[])

4、json 中的对象是由 键值对 组成的,每个数据之间使? 逗号隔开,但是最后?个数据后边不要写逗号

5、json 中的字符串必须是双引号

6、json中的其他数字类型

数字类型---->intfloat

字符串string—>str

布尔类型true,false----->True,False(python中是大写首字母)

空类型 null ----->None

3.3json文件的书写

我叫?明,我今年18岁,性别男,爱好听歌,游戏,购物,吃饭,睡觉,打豆豆。我的居住地址为国家中国,城市上海

{ "name": "小明", "age": 18, "isMen": true, "like": [ "听歌", "游戏", "购物", "打豆豆" ], "address": { "country": "中国", "city": "上海" } } 3.4 读取json文件

1、导包 import json

2、读打开文件

3、读文件

json.load(文件对象)

返回的是 字典 (文件中的对象)或者列表 (文件中的数组)

# 1.导包 import json # 2、读打开文件 with open('Dome.json', encoding='utf-8') as f: # 3、读取文件 result = json.load(f) print(type(result)) # <class 'dict'> print(result.get('name')) print(result.get('age')) print(result.get('address').get('city'))

练习:

我叫?明,我今年18岁,性别男,爱好听歌,游戏,吃饭,睡觉,打??,我的居住地址为国家中国,城市上海.我叫?红,我今年17岁,性别?,爱好听歌,学习,购物我的居住地址为国家中国,城市北京.

json文件:

[ { "name": "小明", "age": 18, "isMan": true, "like": [ "听歌", "游戏", "购物", "打豆豆" ], "address": { "country": "中国", "city": "上海" } }, { "name": "小红", "age": 18, "isMan": false, "like": [ "听歌", "学习", "购物" ], "address": { "country": "中国", "city": "北京" } } ]

代码文件:

# 1、导包 import json # 2、读打开文件 with open("infor2.json",encoding='utf-8') as f: # 3、读取文件 infor_result = json.load(f) for infor in infor_result: print(infor.get('name'),infor.get("age"),infor.get("address").get("city"))

练习2:

某?站的测试数据如下data.json,需求,提取json?件中的?户名,密码和预期结果,组成如下格式:(),(),()

[ { "desc": "正确的用户名密码", "username": "admin", "password": "123456", "expect": "登录成功" }, { "desc": "错误的用户名", "username": "root", "password": "123456", "expect": "登录失败" }, { "desc": "错误的密码", "username": "admin", "password": "123123", "expect": "登录失败" } ] def read_data(): new_list = [] with open("infor3.json",encoding='utf-8') as f: data = json.load(f) for i in data: new_list.append(i.get('username'),i.get('password'),i.get('expect')) # print(new_list) return new_list


简单的介绍了下python中文本文件的操作和json文本,json的文本格式重要,要掌握,这篇帖子是为后面自动化测试做铺垫的。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Python #关闭json文件 #Python文件操作及 #with #OPEN