python实战:read,write读写,json文件读写

1. read,write 读写文本文件;

基本操作

一、件的种类

1.
可以使 ⽤⽂ 本编辑软件查看;
例如: python 的源程序 , txt 文本文件等;
2. 二进制
保存的内容不是给 直接阅读的, 是提供给其他软件使 的 ;
例如:图 ⽚⽂ 件、 件、视频 件等等 ;
进制 件不能使 ⽤⽂ 本编辑软件查看。

二、件操作流程

1. 操作 件的套路
在计算机中要操作 件的套路 常固定, 共包含三个步骤:
1. 打开 件 ;
2. 读、写 件 ;
读: 件内容读 内存 ;
写: 将内容写 ⼊⽂ 件 。
3. 关闭 件 。
2. 操作 件的函数 /
Python 中要操作 件需要记住 1 个函数和 3 个方法
函数/方法说明
open打开文件,返回文件操作对象
read将文件读取到内存
write将指定内容写入文件
close关闭文件
open 函数,打开文件
open 函数负责打开 件,并且返回 件对象
read / write / close 三个 法都需要通过 件对象 来调
read —— 读取
open 函数的第 个参数是要打开的 件名( 件名区分 ⼤⼩ 写) ;
如果 件存在 ------ 返回 件操作对象 ;
如果 件不存在 ------ 出错 ;
read 法可以 次性读取文件的所有内容 。
close 法负责关闭
如果忘记关闭 件,会造成系统资源消耗, 且会影响到后续对 件的访
问 。
# 打开文件
file = open("C:\\Users\\wmk\\Desktop\\双周计划.txt", encoding="UTF-8")
# 读取文件
text = file.read()
print(text)
file.close()
# 写入文件
file1 = open(r"C:/Users/wmk/Desktop/双周计划.txt" ,"w")
str1 = "hello world\n"
file1.write(str1)
str1 = "hello python\n"
file1.write(str1)
# 关闭文件
file1.close()
四、 open 打开 件的
open 函数默认以只读 式打开 件,并且返回 件对象
“r”: 只读方式打开文件 ;
“w”: 只写方式打开文件 ;
“a”: 追加写方式打开文件 ;
open 函数的访问方式后面添加 b 参数代表访问二进制文件, 如:
rb: 代表用只读的方式打开一个二进制文件;
wb :代表用只写的方式打开一个二进制文件。
ab :代表用追加写的方式打开一个二进制文件。
五、 open 打开文件时指定字符集
open( 文件名 , 打开方式 , encoding=’ 字符集 ’)
1. utf8 编码格式打开文件
如果指定文件字符集编码不是 utf8 ,打开会报错
# 打开文件 
file = open(r"C:\file\temp\a.txt", "r", encoding="utf8")
2. gbk 编码格式打开文件
如果指定文件字符集编码不是 gbk ,打开会报错
# 打开文件 
file = open(r"C:\file\temp\a.txt", "r", encoding="gbk")

按行读取文件内容

  • read 法默认会把件的所有内容次性读取到内存 ;
  • 如果件太,对内存的占常严重 ;
  • 解决方案:按行读取文件内容。

一、readline

readline 方法可以一次读取一行内容。
法执 后,会把 件指针移动到下 ⼀⾏ ,准备再次读取
readline 方法读取到文件最后 , 返回长度为 0 的字符串 ””

二、readline 读取文件一行内容

# 打开文件 
file = open(r"C:\file\temp\a.txt") 
# 读取一行内容
text = file.readline() 
# 显示读取内容 
print(text) 
# 关闭文件 
file.close()

三、结合 while 循环 readline 读取文件全部内容

# 打开文件 
file = open(r"C:\file\temp\a.txt") 
while True: 
    text = file.readline() 
    if text == "": 
       # 如果已经读取到文件最后,循环结束 
       break
       # 显示读取内容 
       print(text, end="") 
# 关闭文件 
file.close()
四、 readlines
readlines 方法可以一次读取文件所有行,返回类型为列表。
readlines 读取文件所有行内容,并显示文件全部内容
# 打开文件
file = open(r"C:\file\temp\a.txt") 
# text 类型为 list,list 中每个成员就是文件 a.txt 的每一行 
text = file.readlines() 
# 遍历列表 text 
for n in text: 
# 显示 text 每个成员内容 
   print(n) 
# 关闭文件 
file.close()
五、 with open 语法
f = open("a.txt", "r")
text = f.read()
print(text)
f.close()

以上代码等价

with open("a.txt", "r") as f:
text = f.read()
print(text)

JSON 操作

一、JSON 特点

  • JSON 是纯文本;
  • JSON 具有良好的自我描述性,便于阅读和编写
  • JSON 具有清晰的层级结构;
  • 有效地提升网络传输效率;

二、JSON 语法规则

  • 大括号保存对象;
  • 中括号保存数组;
  • 对象数组可以相互嵌套;
  • 数据采用键值对表示;
  • 多个数据由逗号分隔;

三、JSON

  • JSON 值可以是:
  • 数字(整数或浮点数);
  • 字符串(在双引号中);
  • 逻辑值(true false);
  • 数组(在中括号中);
  • 对象(在大括号中);
  • null
{"name": "tom",
 "age": 18,
 "isMan": True,
 "school": null,
 "address": {
     "country": "中国",
     "city": "上海",
     "street": "高泾路"
 },
 "numbers": [2, 6, 8, 9],
 "links": [
     {
         "name": "王小柯_0314",
         "url": "https://blog.csdn.net/wwwkm123?type=blog"
     }
 ]
 }

四、json 数据操作

1. JSON 文件读写
读取 JSON 文件
import json 
f = open('a.json', "r", encoding='UTF-8') 
data = json.load(f) 
# 返回的 data 数据类型为字典或列表 
print(data) 
f.close()
写入 JSON 文件:
import json 
data = {'name': 'tom', 'age': 20, 'country': '中国'} 
f = open('temp.json', 'w', encoding='UTF-8') 
json.dump(data, f, ensure_ascii=False) 
# ensure_ascii=False 代表中文不转义 
f.close()
2. 课堂练习
1. 文件 test.json 内容如下:
{ "name": "诸葛亮", "sex": "男", "age": 24 }
2. 利用 json.load json.dump age 的值修改为 30
# 思路:
# 先把内容从test.json文件中读出来
# 读出来的结果是一个字典
# 把字典中键age对应 的值修改为30
# 再把字典写回到test.json文件中
import json
file = open("test.json", "r", encoding="utf8")
dict1 = json.load(file)
file.close()
dict1["age"] = 30
file = open("test.json", "w", encoding="utf8")
json.dump(dict1, file, ensure_ascii=False)
file.close()

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值