当前位置: 首页 > news >正文

【Python 第六篇章】字符操作和读取文件

一、字符操作

使用 f 或者 F 关键字格式化字符串。

>>> year = 2016
>>> year = 2024
>>> event = '年'
>>> f'今年是 {year} {event}'
'今年是 2024 年'

使用 str.format() 方法格式化字符串。

>>> name = '小李'
>>> age = 20
>>> '我的名字是: {} 年龄是:{}'.format(name, age)
'我的名字是: 小李 年龄是:20'
>>> '我的名字是: {name} 年龄是:{age}'.format(name='小王', age=56)
'我的名字是: 小王 年龄是:56'

二、读取文件

在Python中,读取文件是一项非常基础且常用的操作。Python提供了多种方式来读取文件内容,最常用的方法是使用内置的open()函数配合文件读取方法(如read(), readline(), readlines()等)。下面是一些基本的读取文件示例:

1、使用 read() 方法

read() 方法会读取文件的全部内容,并将其作为一个字符串返回。如果文件很大,这可能会消耗大量内存。

# 打开文件
with open('example.txt', 'r', encoding='utf-8') as file:# 读取文件全部内容content = file.read()# 打印内容print(content)

这里,with语句用于打开文件,并确保文件在使用后正确关闭。'r'模式表示以只读方式打开文件,encoding='utf-8'指定了文件的编码方式,这对于处理非英文文本尤为重要。

2、使用 readline() 方法

readline() 方法会读取文件的一行内容,并返回一个字符串。如果到达文件末尾,则返回空字符串。

with open('example.txt', 'r', encoding='utf-8') as file:while True:line = file.readline()if not line:breakprint(line, end='')  # 打印行,end='' 避免打印额外的换行符

3、使用 readlines() 方法

readlines() 方法会读取文件的所有行,并将它们作为一个字符串列表返回。每个字符串代表文件中的一行,包括末尾的换行符(如果有的话)。

with open('example.txt', 'r', encoding='utf-8') as file:lines = file.readlines()for line in lines:print(line, end='')  # 打印每行,end='' 避免打印额外的换行符

三、JSON操作

在Python中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Python提供了内置的json模块,使得我们可以很方便地将Python中的结构化数据(如字典、列表等)转换为JSON格式的字符串,以及将JSON格式的字符串解析回Python中的结构化数据。

1、将Python结构化数据保存为JSON

要将Python中的结构化数据(如字典)保存为JSON格式,你可以使用json.dumps()方法。这个方法会将Python对象编码成JSON格式的字符串。如果你想要将JSON数据写入文件,可以使用json.dump()方法,它会直接将数据写入文件对象,而不是先转换成字符串。

示例:使用json.dumps()
import jsondata = {'name': 'John Doe','age': 30,'is_employee': True,'skills': ['Python', 'JSON', 'Web Development']
}# 将Python对象编码为JSON格式的字符串
json_str = json.dumps(data, indent=4)print(json_str)

indent=4参数用于美化输出,使得JSON字符串具有更好的可读性。

示例:使用json.dump()
import jsondata = {'name': 'John Doe','age': 30,'is_employee': True,'skills': ['Python', 'JSON', 'Web Development']
}# 直接将Python对象写入文件
with open('data.json', 'w', encoding='utf-8') as f:json.dump(data, f, indent=4, ensure_ascii=False)# 注意:使用ensure_ascii=False可以确保非ASCII字符(如中文)被正确处理

2、读取JSON文件

如果你想要从JSON文件中读取数据,并将其转换回Python中的结构化数据(如字典),可以使用json.load()方法。

示例:读取JSON文件
import json# 从文件读取JSON数据,并转换为Python对象
with open('data.json', 'r', encoding='utf-8') as f:data = json.load(f)print(data)
print(type(data))  # 输出:<class 'dict'>

通过以上示例,你可以看到Python中的json模块是如何方便地处理JSON数据的。无论是将Python结构化数据转换为JSON字符串,还是将JSON字符串解析回Python对象,都只需要几行代码即可完成。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 解决npm下载依赖速度慢的问题
  • 对称密码学
  • 微信小程序:最近三天,当日昨日,当月,上月其他时间可以参考思路
  • 全桥整流器简介
  • Oracle手动误删物理上的数据文件解决办法
  • 【Linux】:用户缓冲区
  • 更新RK3588开发板的rknn_server和librknnrt.so【这篇文章是RKNPU2从入门到实践 --- 【5】的配套文章】
  • js发送邮件:如何在Node.js实现邮件发送?
  • vue 批量导出pdf 压缩包 zip
  • Location-Aware Self-Supervised Transformers for Semantic Segmentation
  • 最新保姆级教程
  • 车窗边缘上的装饰边和花点的作用
  • 废品回收小程序,从传统到现代化的回收模式
  • spring cloud与boot与cloud alibaba版本对应
  • AR 眼镜之-系统通知定制(通知弹窗)-实现方案
  • 【翻译】babel对TC39装饰器草案的实现
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Apache Spark Streaming 使用实例
  • CSS 专业技巧
  • Java超时控制的实现
  • Java程序员幽默爆笑锦集
  • Java精华积累:初学者都应该搞懂的问题
  • java正则表式的使用
  • LeetCode29.两数相除 JavaScript
  • mysql常用命令汇总
  • Protobuf3语言指南
  • ReactNative开发常用的三方模块
  • Spring核心 Bean的高级装配
  • SQLServer之创建数据库快照
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 订阅Forge Viewer所有的事件
  • 复习Javascript专题(四):js中的深浅拷贝
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 容器服务kubernetes弹性伸缩高级用法
  • 小程序01:wepy框架整合iview webapp UI
  • 新书推荐|Windows黑客编程技术详解
  • 一文看透浏览器架构
  • 用jQuery怎么做到前后端分离
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • ## 基础知识
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #QT(QCharts绘制曲线)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $forceUpdate()函数
  • (8)STL算法之替换
  • (C++17) optional的使用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (分布式缓存)Redis持久化
  • (附源码)计算机毕业设计高校学生选课系统
  • (算法)大数的进制转换
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建