如何使用 Python 进行文件读写操作?

ops/2025/1/21 15:28:22/

大家好,我是 V 哥。今天的内容来介绍 Python 中进行文件读写操作的方法,这在学习 Python 时是必不可少的技术点,希望可以帮助到正在学习 python的小伙伴。

以下是 Python 中进行文件读写操作的基本方法:

一、文件读取

python"># 打开文件
with open('example.txt', 'r') as file:# 读取文件的全部内容content = file.read()print(content)# 将文件指针重置到文件开头file.seek(0)# 逐行读取文件内容lines = file.readlines()for line in lines:print(line.strip())  # 去除行末的换行符# 将文件指针重置到文件开头file.seek(0)# 逐行读取文件内容的另一种方式for line in file:print(line.strip())

代码解释

  • open('example.txt', 'r'):以只读模式 r 打开名为 example.txt 的文件。
  • with 语句:确保文件在使用完毕后自动关闭,避免资源泄漏。
  • file.read():读取文件的全部内容。
  • file.seek(0):将文件指针重置到文件开头,以便重新读取。
  • file.readlines():将文件内容按行读取,并存储在一个列表中,每一行是列表的一个元素。
  • for line in file:逐行读取文件内容,file 对象是可迭代的,每次迭代返回一行。

二、文件写入

python"># 打开文件进行写入
with open('output.txt', 'w') as file:# 写入内容file.write("Hello, World!\n")file.write("This is a new line.")

代码解释

  • open('output.txt', 'w'):以写入模式 w 打开文件,如果文件不存在,会创建文件;如果文件存在,会清空原文件内容。
  • file.write():将指定内容写入文件,不会自动添加换行符,若需要换行,需手动添加 \n

三、文件追加

python"># 打开文件进行追加
with open('output.txt', 'a') as file:# 追加内容file.write("\nThis is an appended line.")

代码解释

  • open('output.txt', 'a'):以追加模式 a 打开文件,在文件末尾添加新内容,不会覆盖原文件内容。

四、文件读写的二进制模式

python"># 以二进制模式读取文件
with open('example.bin', 'rb') as file:binary_data = file.read()print(binary_data)# 以二进制模式写入文件
with open('output.bin', 'wb') as file:binary_data = b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64'  # 二进制数据file.write(binary_data)

代码解释

  • open('example.bin', 'rb'):以二进制只读模式 rb 打开文件。
  • open('output.bin', 'wb'):以二进制写入模式 wb 打开文件。
  • b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64':表示二进制数据,使用 b 前缀。

五、使用 json 模块读写 JSON 文件

python">import json# 写入 JSON 数据
data = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.json', 'w') as file:json.dump(data, file)# 读取 JSON 数据
with open('data.json', 'r') as file:loaded_data = json.load(file)print(loaded_data)

代码解释

  • json.dump(data, file):将 Python 对象 data 序列化为 JSON 格式并写入文件。
  • json.load(file):从文件中读取 JSON 数据并解析为 Python 对象。

六、使用 csv 模块读写 CSV 文件

python">import csv# 写入 CSV 数据
data = [['Name', 'Age', 'City'], ['John', 30, 'New York'], ['Jane', 25, 'Chicago']]
with open('data.csv', 'w', newline='') as file:writer = csv.writer(file)writer.writerows(data)# 读取 CSV 数据
with open('data.csv', 'r') as file:reader = csv.reader(file)for row in reader:print(row)

代码解释

  • csv.writer(file):创建一个 CSV 写入对象,将数据列表写入文件。
  • writer.writerows(data):将数据列表中的每一行写入文件。
  • csv.reader(file):创建一个 CSV 读取对象,逐行读取文件。

七、使用 pandas 模块读写文件(需要安装 pandas 库)

python">import pandas as pd# 写入数据到 CSV 文件
data = {'Name': ['John', 'Jane'], 'Age': [30, 25], 'City': ['New York', 'Chicago']}
df = pd.DataFrame(data)
df.to_csv('data_pandas.csv', index=False)# 读取 CSV 文件
df_read = pd.read_csv('data_pandas.csv')
print(df_read)

代码解释

  • pd.DataFrame(data):将字典数据转换为 pandasDataFrame 对象。
  • df.to_csv('data_pandas.csv', index=False):将 DataFrame 对象存储为 CSV 文件,不保存索引。
  • pd.read_csv('data_pandas.csv'):读取 CSV 文件为 DataFrame 对象。

八、使用 pickle 模块进行对象序列化和反序列化

python">import pickle# 序列化对象
data = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.pkl', 'wb') as file:pickle.dump(data, file)# 反序列化对象
with open('data.pkl', 'rb') as file:loaded_data = pickle.load(file)print(loaded_data)

代码解释

  • pickle.dump(data, file):将 Python 对象 data 序列化为二进制数据并写入文件。
  • pickle.load(file):从文件中读取二进制数据并反序列化为 Python 对象。

以上是 Python 中进行文件读写操作的常用方法,你可以根据不同的文件类型和使用场景,选择合适的方法进行操作。

最后

根据文件类型和操作需求,可以灵活使用内置的 open 函数及相关模块,如 json、csv、pandas 和 pickle 等,同时利用 with 语句确保文件的正确打开和关闭。你 Get 到了么,欢迎关注威哥爱编程,全栈路上我们并肩前行。


http://www.ppmy.cn/ops/151939.html

相关文章

mongoose 支持https踩坑纪实

简述 mongoose是C编写的嵌入式web服务,它能够支持https协议,可以简单的部署,但要做到完美部署,不是那么容易。 部署方法 本人使用的是最新的7.16版,以前版本似乎是要通过修改 头文件中的 MG_ENABLE_SSL 宏定义&…

电梯系统的UML文档05

Dispatcher 不控制实际的电梯组件,但它在软件系统中是重要的。每一个电梯有一个ispatcher,主要功能是计算电梯的移动方向、移动目的地以及保持门的打开时间。它和系统中除灯控制器以外的几乎所有控制对象交互。 安全装置也是一个环境对象,它…

如何使用 Redis 作为高效缓存

如何使用 Redis 作为高效缓存 Redis(Remote Dictionary Server)是一个高性能的 内存存储系统,通常被用作 缓存 来加速数据访问,提高应用的吞吐量和响应速度。本文详细讲解如何使用 Redis 作为高效缓存,包括基本原理、…

DNVS许可管理

在全球经济一体化的大背景下,合规管理成为了企业持续稳健发展的关键要素。DNVS许可管理作为一种国际领先的许可认证体系,以其严格的标准和专业的审核流程,帮助企业实现合规管理,为企业的稳健发展保驾护航。 一、DNVS许可管理的核…

【学习笔记15】如何在非root服务器中,安装属于自己的redis

一、下载安装包 官网下载黑马程序员给的安装包(redis-6.2.6) 二、将安装包上传至服务器 我将安装包上传在我的文件夹/home/XXX,指定路径中/src/local/redis/,绝对路径为/home/XXX/src/local/redis/解压安装包 XXXomega:~$ cd …

线性代数概述

矩阵与线性代数的关系 矩阵是线性代数的研究对象之一: 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,是线性代数中的核心概念之一。矩阵的定义和性质构成了线性代数中矩阵理论的基础,而矩阵运算则简洁地表示和…

【思科】NAT配置

网络拓扑图 这个网络拓扑的核心是Router1,它通过配置多个VLAN子接口来实现对不同VLAN的支持,并通过NAT进行地址转换,使得内部网络能够与外部网络进行通信。Router1上配置了FastEthernet0/0.x接口,并启用了802.1Q封装,…

1. 基于图像的三维重建

1. 基于图像的三维重建 核心概念三维重建中深度图、点云的区别?深度图点云总结 深度图到点云还需要什么步骤?1. **获取相机内参**2. **生成相应的像素坐标**3. **计算三维坐标**4. **构建点云**5. **处理颜色信息(可选)**6. **去除…