测试学习--python(八)

测试学习–python(八)

内容提要

  • 文件操作
  • 普通文件操作
  • json文件操作
  • 异常处理

文件

计算机的⽂件,就是存储在某种⻓期储存设备上的⼀段 数据

  1. 作用:将数据⻓期保存下来,在需要的时候使⽤
  2. 计算机只认识 ⼆进制(0 1)
  3. ⽂件中存储的数据都是以⼆进制(0 1) 的形式去存储的

文件分类

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

  1. 文本文件:能够使⽤记事本软件打开(能够使⽤记事本转换为⽂字)
  2. txt, md, py , html, css, js , json
  3. 二进制文件:不能使⽤记事本软件打开的
  4. exe, mp3, mp4, jpg, png

文件操作

打开文件
  1. 将⽂件从磁盘(硬盘) 中 读取到内存中
  2. 语法:
open(file,mode='r',encoding=None)
  • 参数 file: 是要打开的⽂件, 类型是字符串, ⽂件的路
    径可以是相对路径,也可以是绝对路径(从根⽬录开始书写的路
    径),建议使⽤相对路径(相对于当前代码⽂件所在的路径, ./
    …/ )
  • 参数 mode: 默认参数(缺省参数), 表示的是打开⽂件
    的⽅式
    r: read 只读打开
    w: write 只写打开
    a:append 追加打开, 在⽂件的末尾写⼊内容
    -参数 encoding: 编码⽅式,(⽂字和⼆进制如何进⾏转换
    的)
    gbk: 将⼀个汉字转换为 2 个字节⼆进制
    utf-8: 常⽤, 将⼀个汉字转换为 3 个字节的⼆进
  • 返回值: 返回的是 ⽂件对象, 后续对⽂件的操作,都需要
    这个对象
读写文件
写文件
  1. 向⽂件中写⼊指定的内容.
  2. 前提: ⽂件的打开⽅式是 w 或者 a
  3. 语法:
文件对象.write('写入文件的的内容')

返回值: 写⼊⽂件的字符数,⼀般不关注
注意 w ⽅式打开⽂件:

  1. ⽂件不存在,会直接创建⽂件
  2. ⽂件存在,会覆盖原⽂件(将原⽂件中的内容清空)
读文件
  1. 将⽂件中的内容读取出来
  2. 前提: ⽂件的打开⽅式需要是 r
  3. 语法:
文件对象.read(n)
# 参数 n 表示读取多少个字符, ⼀般不写,表示读取全部内容
# 返回值: **读取到的⽂件内容, 类型 字符串**
  1. r ⽅式打开⽂件 ,如果⽂件不存在,代码会报错
关闭文件
  1. 关闭⽂件: 将⽂件占⽤的资源进⾏清理,同时会保存⽂件,
  2. ⽂件关闭之后,这个⽂件对象就不能使⽤了
  3. ⽂件对象.close()
f=open('a.txt','r',encoding='utf-8')
buf=f.read()
print(buf)
f.close()

使用withopen打开文件

  1. 优点:不用自己去书写关闭文件的代码
  2. 语法:
with openfile,mode,encoding='utf-8'as 变量:
     #缩进写入或读取文件
 
 #缩进中代码执行结束,出缩进之后文件会自动关闭
 
with open'a.txt','a',encoding='utf-8'as f:
     f.write('good good study')
     # a ⽅式打开⽂件, ⽂件不存在会创建⽂件, ⽂件存在, 在⽂件的末尾写⼊内容
     

按行读取文件内容 readline()

  1. 按⾏读取⽂件: ⼀次读取⼀⾏内容
  2. 语法:文件对象.readline()
with open ('b.txt',encoding='utf-8') as f:#mode默认为’r‘
      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 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值