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

2023-11-06

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python实战:read,write读写,json文件读写 的相关文章

  • 动态向类添加类方法

    我有以下片段 FEED TYPES fan mail Fan Mail review Review tip Tip fan user Fan User fan song Fan Song fan album Fan Album played
  • 为什么 Python 在导入脚本时只保存脚本的字节码?

    既然执行Python字节码会比运行原始源代码更快 因为Python不需要重新编译 为什么Python在导入脚本时只保存编译后的字节码呢 为每个执行的脚本保存 pyc 文件不是更好吗 无论如何 Python 解释器的启动时间都需要时间 即使您
  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • scipy.optimize on pandas dataframe

    我试图搜索它 但结果很差 有人可以向我解释一下如何在 Pandas DataFrame 上执行 optimize minimize 以便最小化 DataFrame 中的类别和结果列之间的错误 考虑这个例子 import pandas as
  • 如何使用一个模型中间层的输出作为另一个模型的输入?

    我训练一个模型A并尝试使用中间层的输出name layer x 作为模型的附加输入B 我尝试像 Keras 文档一样使用中间层的输出https keras io getting started faq how can i obtain th
  • 通过 python 中的另外两个修改数组[重复]

    这个问题在这里已经有答案了 假设我们有三个一维数组 A 长度为 5 B 长度相同 示例中为5 C 更长 比如长度为 100 C最初用零填充 A给出索引C应更改的元素 它们可能会重复 以及B给出应添加到初始零的值C 例如 如果A 1 3 3
  • 为什么在访问 Python 对象属性时使用 getattr() 而不是 __dict__ ?

    在具有一定程度的 Python 对象自省的源代码示例和 SO 答案中 常见的模式是 getattr some object attribute name string 是否有理由优先选择这种模式 some object dict attri
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • 在请求中设置端口

    我正在尝试利用cgminer使用 Python 的 API 我对利用requests图书馆 我了解如何做基本的事情requests but cgminer想要更具体一点 我想缩小 import socket import json sock
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • Django 2、python 3.4 无法解码 urlsafe_base64_decode(uidb64)

    我正在尝试通过电子邮件激活用户 电子邮件有效 编码有效 我使用了 django1 11 中的方法 该方法运行成功 在 Django 1 11 中 以下内容成功解码为 28 其中 uidb64 b Mjg force text urlsafe
  • 从 wxPython 事件处理程序中调用函数

    我正在努力寻找一种在 wxPython 事件处理函数中使用函数的方法 假设我有一个按钮 单击该按钮时 它会使用事件处理程序运行一个名为 OnRun 的函数 但是 用户忘记单击 OnRun 按钮之前的 RadionButton 我想弹出一个
  • 如何创建用于霍夫曼编码和解码的树?

    对于我的作业 我将对霍夫曼树进行编码和解码 我在创建树时遇到问题 并且陷入困境 不要介意打印语句 它们只是让我测试并查看函数运行时的输出是什么 对于第一个 for 循环 我从主块中用于测试的文本文件中获取了所有值和索引 在第二个 for 循
  • 是否可以使用 Anaconda 包作为 Google Cloud Functions 的依赖项?

    我正在使用 Python 运行时编写 Google Cloud Function 我需要包含一些无法使用的依赖项pip 如文档中所述here https cloud google com functions docs writing spe
  • 如何使用 enumerate 来倒数?

    letters a b c 假设这是我的清单 在哪里for i letter in enumerate letters 将会 0 a 1 b 2 c 我怎样才能让它向后枚举 如 2 a 1 b 0 c 这是一个很好的解决方案并且工作完美 i
  • 没有名为“turtle”的模块

    我正在学习并尝试用Python3制作贪吃蛇游戏 我正在进口海龟 我正在使用 Linux mint 19 PyCharm python37 python3 tk Traceback most recent call last File hom
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • 如何使用 Python/Django 在 Facebook 中获取(和使用)扩展权限

    我正在尝试编写一个简单的应用程序 让用户授予我的代码写入其页面的 Facebook 流的权限 据我了解 它应该很简单 让用户单击一个按钮 启动一个弹出窗口 其中包含我的 Facebook 应用程序中的页面 在该页面中 他们单击授予的内容流发
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import

随机推荐

  • 正常计算机的c盘空间多大,电脑C盘应该留多大空间?

    机械硬盘 不管是500G 1TB 2TB 4TB win7 还是win10系统统一60G就行 C盘大小为 60G 固态硬盘 两种情况 一种是120G 一种是240G及以上 120G硬盘 C盘为120G 整个硬盘为一个区 240硬盘及以上 C
  • 服务器配置openssl支持 https 访问

    一 Windows apache 下 软件是xampp 说明 部分参考 http blog sina com cn s blog 5d7dbbdd0101042n html 首先要载入 mod ssl 1 将证书生成的配置文件 http t
  • MFC---CComboBox控件添加字符串函数InsertString

    InsertString 在列表的指定位置插入一项 需使用成员函数InsertString 函数有两个参数 第一个参数为索引号 设定为 1时 项目条被插入到列表的末尾 第二个参数与AddString 函数的唯一参数相同 为代表项目条中内容的
  • python中字典考题_python 字典一些常见的魔法方法以及遇到的面试题

    一 字典介绍 dict 类型不但在各种程序里广泛使用 它也是 Python 语言的基石 模块的命名空间 实例的属性和函数的关键字参数中都可以看到字典的身影 跟它有关的内置函数都在 builtins dict 模块中 正是因为字典至关重要 P
  • 对标大厂标准,C站(CSDN)软件工程师能力认证正式上线

    2021年3月1日 中国专业IT开发者社区CSDN 以下简称C站 正式推出 C站软件工程师能力认证 该认证与国际标准接轨 面向全球IT开发者学习成长 同时具备标准全开源 系统化学习 真实业务场景 完全上机实操 所有过程留痕 存档不可篡改等特
  • 【Leetcode】61. 旋转链表

    题目描述 给你一个链表的头节点 head 旋转链表 将链表每个节点向右移动 k 个位置 题解 旋转链表 找倒数第k个节点 翻转前后链表 执行用时 0 ms 在所有 Java 提交中击败了100 00 的用户 内存消耗 37 8 MB 在所有
  • 重磅, GPT 4.0 API 全面开放使用!普通人也能用上 4.0 了 !

    伴随着人工智能领域的迅猛发展 GPT 4 0作为一款关键的智能模型 备受国内开发者和企业的瞩目 本文旨在为您提供详实的指南 帮助您在国内顺利获取并使用GPT 4 0 API 从而踏上智能应用创新之路 我们将为您提供一步一步的操作步骤和必要的
  • 【ts】数组、联合数据类型、类型推论

    一 ts约束数组 1变量 类型 let arr Number 1 3 3 4 arr push 1 arr push he 不能添加数组中没有约束的类型 2 数组泛型 变量 Array lt 类型 gt let arr Array
  • DasViewer加载大疆智图、CC等三维模型无空间坐标的解决方法

    对于大疆智图处理生成的terra osgbs文件夹下的三维模型包含了带有空间参数的metadata xml文件 利用DasViewer打开Model osgb模型文件 显示比较模糊 不能够达到实际应用的目的 我是利用转格式工具进行格式转换生
  • python 执行js脚本报错CryptoJS is not defined

    直接在js代码加上一行定义CryptoJS就行了 function encrypt e const CryptoJS require crypto js var b bGVhcm5zcGFjZWFlczEyMw var a new Base
  • 【Spring实战】—— 7 复杂集合类型的注入

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 之前讲解了Spring的基本类型和bean引用的注入 接下来学习一下复杂集合类型的注入 例如 List Set Map等 对于程序员来说 掌握多种语言是基本的技能 我们这里
  • 在本地以Docker方式安装和运行Kafka

    文章目录 在本地以Docker方式安装和运行Kafka 前言 用Bitnami kafka的镜像 用wurstmeister kafka的镜像 启动Kafka 测试创建主题并读 写消息 参考文档 后记 在本地以Docker方式安装和运行Ka
  • discuz7.2漏洞分析

    一 参数的入口 这段话的意思时遍历三种提交的方法 获取参数传递的值 有一个函数是daddslashes 跟进看一下 这段代码的意思是对数据里的每一个字符都进行转义处理 二 漏洞产生的代码在faq php195行 跟进implodeid函数
  • Tomcat安装测试、Eclipse配置Tomcat步骤

    一 安装tomcat并测试 1 1 1到Apache Tomcat官网下载安装包 在选择中间位置的版本较为稳定然后选择对应操作系统的安装包 本次选择8 5版本 1 1 2 解压下载好的安装包即可完成安装 复制Tomcat的安装路径以备下一步
  • 第十七章 C# Action和Func委托 多播 匿名函数 lambda表达式

    一 使用 Action和Func委托 方法的返回类型 和 名字千千万万 无法对每个方法都去定义对应的委托 nt为了方便使用委托 定义了两个泛型委托 Action Action委托表示一个void返回类型的方法 例1 MyDelegate m
  • 数据库内核杂谈阅读笔记

    数据库内核杂谈 InfoQ 文章目录 简单数据库实现 存储 索引优化 执行模式 Parsing Binding Optimizing Executing 排序和聚合 排序 聚合 JOIN 优化器 Query Rewrite Heuristi
  • 监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务

    监控利器Nagios之一 监控本地NFS和外部HTTP MySQL服务 Nagios是一款开源的免费网络监视工具 能有效监控Windows Linux和Unix的主机状态 交换机路由器等网络设置 打印机等 在系统或服务状态异常时发出邮件或短
  • 深入学习jquery源码之attr()与removeAttr()

    深入学习jquery源码之attr 与removeAttr attr name properties key value fn 概述 设置或返回被选元素的属性值 参数 name String 属性名称 properties Map 作为属性
  • xml格式标签转为txt格式标签

    xml格式标签转为txt格式标签用于yolo目标检测 xml gt txt coding utf 8 import xml etree ElementTree as ET import pickle import os from os im
  • python实战:read,write读写,json文件读写

    1 read write 读写文本文件 基本操作 一 件的种类 1 本 件 可以使 本编辑软件查看 例如 python 的源程序 txt 文本文件等 2 二进制 件 保存的内容不是给 直接阅读的 是提供给其他软件使 的 例如 图 件 频 件