一、文件操作
1、基本过程:
打开文件 --- 操作 --- 关闭文件
open:(路径,打开方式,encoding=编码方式)
路径:绝对路径(了解),相对路径: ./ , ../ , .../
打开方式:r, rb,w,wb,a
注意:路径不存在的时候,读的形式打开会报错,写的形式打开会自动创建文件。
设置编码方式:utf-8 , gbk
注意:如果以二进制的方式打开文件(rb,wb),不能设置编码方式。
2、文件的读和写:
read()、readline() -- 读
write() -- 写
3、关闭
close() ---- 良好的习惯
4、打开文件和关闭文件的简写方式(常用的)
#文件打开操作完成后,会自动关闭文件
with open() as 文件变量名:
文件操作
-
下载文件的本质就是从网络上下载二进制数据,再写入本地文件。
二进制文件(图片、视频等)只能用二进制方式(rb、wb)打开。
二、json文件
json是有特定格式的一种文本形式,它有自己的语法。(.json文件)
1、json格式对应的数据类型及其表现。
-
一个json文件中只能存一个数据,这个数据的类型必须是以下类型中的一个,并且只能用双引号。
对象(object)----- {"a":10,"b":[1,2]} 相当于Python的字典
数组(array)----- [100,"abc",true,[1,2]] 相当于Python的列表
数字(number)----- 0,100,3.14
字符串(string)----- "abc"
True ----- true/false
null ----- null(空值)
json模块是python中内置的,专门处理json数据的一个模块。
import json
with open('./files/json1.json','r',encoding='utf-8') as f:
content = json1.json
2、python 对 json 数据的支持
A、json --> python
(1)、json.load(json文件对象):以json的格式,获取文件中的内容。将内容转换成相应的python数据。
(2)、json.loads(json格式内容的字符串,编码方式):将json格式的字符串转换成python对应的数据。
json ---> python
对象 ---> 字典
数组 ---> 列表
数字 ---> 整数、浮点数
true,false ---> 布尔(True,False)
null ---> None
B、python --> json
python ---> json
字典 ---> 对象
列表、元组 ---> 数组
整数、浮点数 ---> 数字
True,False ---> true,false
字符串 ---> 字符串(双引号)
None ---> null
(1)、json.dump(写入json文件中的python数据,json对象)
(2)、json.dumps(转换成json格式字符串的python数据)
3.异常捕获
程序出现某种异常,但是不想因为这个异常而让程序崩溃。这个时候就可以使用异常捕获机制。
- 执行过程:依次执行try后面的代码块,一旦遇到异常,就马上执行except后面的代码块。执行完后再执行其他的代码。
如果try里面的代码块没有异常,就不执行except后面的代码,而执行其他的代码。
形式一(捕获所有异常)
try:
需要捕获异常的代码块(可能会出现异常的代码块)
except:
出现异常后执行的代码
a = [1,2,3,5]
try:
print(a[5])
except:
print('捕获到异常')
形式二(捕获指定类型)
try:
需要捕获异常的代码块(可能会出现异常的代码块)
except 错误类型:
出现异常后执行的代码
a = [1,2,3,5]
try:
print(a[5])
except IndexError:
print('捕获到异常')
a = [1,2,3,5]
try:
print(a[5])
except (IndexError,KeyError):
print('捕获到异常')
形式三(捕获到异常进行多种处理)
try:
需要捕获的异常的代码块(可能会出现异常的代码块)
except 错误类型1:
执行语句1
except 错误类型2:
执行语句2
'''
还是只会捕获到一个异常
'''
形式四(finally:不管有没有异常,即使崩溃,也会执行finally里面的的东西。)
try:
需要捕获的异常的代码块(可能会出现异常的代码块)
except 错误类型1:
执行语句1
except 错误类型2:
执行语句2
finally:
执行语句
'''
finally:不管有没有异常,都会执行finally里面的的东西。
'''
def user_input():
try:
numb1 = float(input('请输入除数:'))
numb2 = float(input('请输入被除数:'))
except ValueError:
print('输入类型错误,请输入数字!!')
user_input()
test(numb1,numb2)
def test(n,y):
try:
print('%f / %f = %.2f' % (n,y,n/y))
except ZeroDivisionError:
print('被除数不能为0')
user_input()
finally:
print('哈哈哈哈哈哈')
user_input()
4、抛出异常(以后补充)
raise 异常类型
网友评论