文件操作;异常处理

文件介绍:

文本文件:能够使用记事本软件打开,能使用记事本转换为文字:css,html

二进制文件:不能用记事本软件打开:.exe/.mp3/jpg/png

  • 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('写入文件的内容') #返回值:写入文件的字符数,- 般不关注
    • 读文件 将文件中的内容读取出来 前提:文件的打开方式需要是r 文件对象.read(n) 参数n表示读取多少个字符,一般不写,默认读取全部内容 返回值:读取到的文件内容,类型 字符串
  • 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() :不用自己书写关闭文件的代码,会自动进行关闭 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?')

按行读取文件:文件对象.readline

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文件**

json文件的处理

json文件也是一个文本文件,就可以直接使用read()和write()方法去操作文件,只是使用这两个方法,不方便,所以对json 文件有自己独特的读取和写入的方法; 常用在在做测试的时候,将测试数据定义为json文件格式,使用代码读取json文件,即读取测试数据,进行传参(参数化)

json的介绍;

json基于文本,独立于语言的轻量级的数据交换格式; 一基于文本,是一个文本文件 -独立于语言,不是某个语言特有的,每种编程语言都可以使用的 -轻量级,相同的数据,和其他格式相比,占用的大小比较小 一数据交换格式,后端程序员给前端的数据

json文件的语法

  1. json文件的后缀是.json
  2. json 中主要数据类型为对象({} 类似Python 中字典)和数组([],类似Python 中的列表),对象和数组可以互相嵌套
  3. 一个json文件是一一个对象或者数组(即json文件的最外层要么是一个{},要么是一个数组[])
  4. json中的对象是由键值对组成的,每个数据之间使用逗号隔开,但是最后一个数据后边不要写逗号
  5. json中的字符串必须使用双引号
  6. json中的其他数据类型

    数字类型----> int float string字符串-str 布尔类型true, false -----> True, False null ----> None ;

{ "name": "xiaoming", "age": 18, "like": ["music", "game", "shopping"], "address": {"contry": "china", "city": "shanghai"} }

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

  1. 导包 import json
  2. 写(r)方式打开文件
  3. 读文件 json.load(文件对象)

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'))

json文件以列表中元组的方式读取

例子文件: [ { "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

json文件的写入:

文件对象.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 中已经实现好了,我们不需要操作,我们知道异常会进行传递, 异常传递:在函数嵌套调用的过程中,被调用的函数, 发生了异常,如果没有捕获,会将这个异常向外层传递。... 如果传到最外层还没有捕获,才报错

模块和包

  1. Python 源代码文件就是一个模块 2.模块中定义的变量函数类,都可以让别人使用,同样,可以使用别人定义的(好处:别人定义好的不需要我们再次书写,直接使用即可) 3.想要使用别人的模块中的内容工具(变量,类,函数),必须先导入模块才可以 4.我们自己写的代码,想要作为模块使用,代码的名字需要满足标识符的规则(由数字,字母下划线组成,不能以数字开头)

name== 'main':

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))

JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。