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

一、字符操作

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

python 复制代码
>>> year = 2016
>>> year = 2024
>>> event = '年'
>>> f'今年是 {year} {event}'
'今年是 2024 年'

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

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

二、读取文件

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

1、使用 read() 方法

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

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

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

2、使用 readline() 方法

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

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

3、使用 readlines() 方法

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

python 复制代码
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()
python 复制代码
import json

data = {
    '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()
python 复制代码
import json

data = {
    '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文件
python 复制代码
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对象,都只需要几行代码即可完成。

相关推荐
JH30731 分钟前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
蓝染-惣右介3 分钟前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
冷心笑看丽美人4 分钟前
Spring框架特性及包下载(Java EE 学习笔记04)
数据库
ZZZCY200313 分钟前
华为ENSP--IP编址及静态路由配置
网络·华为
EasyCVR31 分钟前
私有化部署视频平台EasyCVR宇视设备视频平台如何构建视频联网平台及升级视频转码业务?
大数据·网络·音视频·h.265
hgdlip1 小时前
主IP地址与从IP地址:深入解析与应用探讨
网络·网络协议·tcp/ip
武子康1 小时前
Java-07 深入浅出 MyBatis - 一对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis·springboot
珹洺1 小时前
C语言数据结构——详细讲解 双链表
c语言·开发语言·网络·数据结构·c++·算法·leetcode
科技象限1 小时前
电脑禁用U盘的四种简单方法(电脑怎么阻止u盘使用)
大数据·网络·电脑
东方隐侠安全团队-千里1 小时前
网安瞭望台第3期:俄黑客 TAG - 110组织与密码攻击手段分享
网络·chrome·web安全·网络安全