Python文件操作

文件介绍

1. 计算机只认识二进制 ( 0 1 )
2. ⽂件中存储的数据都是以二进制 ( 0 1 ) 的形式去存储的
文件分为两种: ⽂本⽂件和二进制⽂件

文本文件

能够使⽤记事本软件打开 ( 能够使⽤记事本转换为⽂字 )

txt, md, py , html, css, js , json

二进制文件

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

文件操作

打开文件

语法:open(file, mode='r', encoding=None)

参数 file:将要打开的文件,字符串类型,相对路径或绝对路径

参数mode:默认参数(缺省参数), 表示的是打开文件的⽅式

                     r: read 只读打开

                     w: write 只写打开

                      a:append 追加打开 , 在⽂件的末尾写⼊内容
参数encoding:编码方式,文字或二进制
                           gbk: 将⼀个汉字转换为 2 个字节⼆进制
                            utf-8: 常⽤ , 将⼀个汉字转换为 3 个字节的⼆进制
返回值 : 返回的是⽂件对象 , 后续对⽂件的操作 , 都需要这个对象读写文件

读写文件

写文件

对象 . write ( ' 写⼊⽂件的内容 ' )
# 1, 打开⽂件
f = open('123.txt', 'w', encoding='utf-8')
# 2, 写⽂件
f.write('天天开心\n')
f.write('天天快乐')
# 3, 关闭⽂件
f.close()

读文件   

对象. read ( n )

​​​参数n:表示读取多少字符,空代表读取全部内容

#读文件
# 1, 打开⽂件
f = open('123.txt', 'r', encoding='utf-8')
# 2, 读⽂件
aaa = f.read()
print(aaa) # ⽬前只是打印读取的内容,可以做其它的事
# 3. 关闭⽂件
f.close()
# r ⽅式打开⽂件 ,如果⽂件不存在,代码会报错

关闭文件

⽂件对象.close()

使⽤ with open 打开⽂件

with open () 打开⽂件的好处 : 不⽤⾃⼰去书写关闭⽂件的代
码, 会⾃动进⾏关闭
with open('123.txt','a',encoding='utf-8') as f:
    f.write('woshi dage ')

按行读取文件内容

按⾏读取⽂件: ⼀次读取⼀⾏内容
⽂件对象 . readline ()
with open('123.txt', 'r',encoding='utf-8') as f:
    while True:
        buf = f.readline()
        if len(buf) == 0:
            break
        else:
         print(buf, end='')
with open('123.txt', 'r', encoding='utf-8') as f:
     for i in f:
      print(i, end='')

json文件的处理

json 的介绍

json
基于⽂本,独⽴于语⾔的轻量级的数据交换格式
- 基于⽂本, 是⼀个⽂本⽂件, 不能包含图⽚,⾳视频等
- 独⽴于语⾔, 不是某个语⾔特有的, 每种编程语⾔都可以使⽤
- 轻量级, 相同的数据, 和其他格式相⽐,占⽤的⼤⼩⽐较⼩
- 数据交换格式, 后端程 序员 给前端的数据 ( json html,xml )

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": "小明",
  "age": 18,
  "isMen": true,
 "like": [
 "听歌",
 "游戏",
 "购物",
 "吃饭",
 "睡觉",
 "打⾖⾖"
 ],
 "address": {
 "country": "中国",
 "city": "上海"
 }
}

读取 json 文

导包 import json
读打开⽂件
读⽂件
json . load ( ⽂件对象 )
# 返回的是 字典(⽂件中是对象)或者列表(⽂件中是数组)
import json
with open ('info.json',encoding='utf-8')as f:
    # buf = f.read()
    # print(buf)
    result = json.load(f)
    print(type(result))
    print(result.get('name'))
    print(result.get('age'))
    print(result.get('address').get('city'))

json 的写入

⽂件对象.write(字符串) 不能直接将 Python 的列表 和字典
作为参数传递
想要将 Python 中的数据类型存为 json ⽂件, 需要使⽤ json
提供的⽅法, 不再使⽤ write
1. 导包 import json
2. ( w ) ⽅式打开⽂件
3. 写⼊

json.dump(Python 中的数据类型, ⽂件对象)


import json

my_list = [('admin', '123456', '登录成功'), ('root','123456', '登录失败'), ('admin', '123123', '登录失败')]
with open('info3.json','w',encoding='utf-8') as f:
 json.dump(my_list,f,ensure_ascii=False,indent=4)#直接显示中⽂,不以 ASCII 的⽅式显示,显示缩进

 异常

程序在运⾏时,如果 Python 解释器 遇到到⼀个错误,会停⽌程序的执⾏,并且提示⼀些错误信息,这就是异常
程序停⽌执⾏并且提示错误信息 这个动作, 抛出异常(raise 关键字)
捕获异常: 程序遇到异常, 默认动作是终⽌代码程序的执⾏, 遇⻅异常之后, 可以使⽤异常捕获,让程序代码继续运⾏,不会终 ⽌运⾏(重点)

基本语法

try :
书写可能发⽣异常的代码
except : # 任何类型的异常都能捕获
发⽣了异常执⾏的代码
try :
书写可能发⽣异常的代码
except 异常类型 : # 只能捕获指定类型的异常 , 如果不是这个
异常 , 还是会报错
发⽣了异常执⾏的代码

异常捕获

try:
    num = input('请输⼊数字:')
    num = int(num)
    print(num)
except:
    print('请输⼊正确的数字')
捕获ValueError类型及其子类的异常
try:
    num = input('请输⼊数字:')
    num = int(num)
    print(num)
except ValueError:
    print('请输⼊正确的数字')

捕获多个指定类型的异常

好处: 可以针对不同的异常错误,进⾏单独的代码处理

try :
书写可能发⽣异常的代码
except 异常类型 1 : # 只能捕获指定类型的异常 , 如果不是这
个异常 , 还是会报错
发⽣了异常 1 执⾏的代码
except 异常类型 2 :
发⽣了异常 2 执⾏的代码
except 异常类型 ...:
发⽣了异常 ... 执⾏的代码
#多个异常的捕获
try:
    #1. 获取⽤户从键盘输⼊的数据
    num = input('请输⼊数字:')
    # 2. 转换数据类型为整数
    num = int(num)
    # 3. 输出转换之后的数据内容
    print(num)
    a = 10 / num  # 10 / 0
    print(f'a: {a}')
except ValueError:  # 只能捕获 ValueError 类型及其⼦类的异常
    print('发⽣了异常, 请输⼊正确的数字...')
except ZeroDivisionError:
    print('除数不能为 0')

异常捕获

try :
        可能发⽣异常的代码
except 异常类型 1 :
        发⽣异常类型1 执⾏的代码
# Exception 是常⻅异常类的⽗类 , 这⾥书写 Exception,
以捕获常⻅的所有⼀会 , as 变量 , 这个变量是⼀个异常类的对
, print( 变量 ) 可以打印异常信息
except Exception as 变量 :
        发⽣其他类型的异常 , 执⾏的代码
else :
        没有发⽣异常会执⾏的代码
finally :
        不管有没有发⽣异常 , 都会执⾏的代码
try:
    num = input('请输入数字:')
    num = int(num)
    print(num)
    a = 10/num
    print(f'a:{a}')
except Exception as e:
    print(f'错误信息为:{e}')
else:
    print('没有异常')
finally:
    print('我一定会执行')

来源:黑马软件测试Python

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值