如何使用 Python 进行文件读写操作?
大家好,我是 V 哥。今天的内容来介绍 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
对象是可迭代的,每次迭代返回一行。
二、文件写入:
# 打开文件进行写入
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
。
三、文件追加:
# 打开文件进行追加
with open('output.txt', 'a') as file:# 追加内容file.write("\nThis is an appended line.")
代码解释:
open('output.txt', 'a')
:以追加模式a
打开文件,在文件末尾添加新内容,不会覆盖原文件内容。
四、文件读写的二进制模式:
# 以二进制模式读取文件
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 文件:
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 文件:
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
库):
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)
:将字典数据转换为pandas
的DataFrame
对象。df.to_csv('data_pandas.csv', index=False)
:将DataFrame
对象存储为 CSV 文件,不保存索引。pd.read_csv('data_pandas.csv')
:读取 CSV 文件为DataFrame
对象。
八、使用 pickle
模块进行对象序列化和反序列化:
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 到了么,欢迎关注威哥爱编程,全栈路上我们并肩前行。
相关文章:
如何使用 Python 进行文件读写操作?
大家好,我是 V 哥。今天的内容来介绍 Python 中进行文件读写操作的方法,这在学习 Python 时是必不可少的技术点,希望可以帮助到正在学习 python的小伙伴。 以下是 Python 中进行文件读写操作的基本方法: 一、文件读取࿱…...
springcloud中的Feign调用
目录 一、基础应用 1.feign使用 1.增加feign依赖 2.编写feign接口 3.启用feign 4.调试 5.可能出现的异常信息 1.404 可能原因: 2.503 可有原因: 2.feign自定义配置 1.创建Feign配置类 2.feign接口 3.调试结果 3.feign多参数请求 Feign是Netflix开发的声明…...
【部署】将项目部署到云服务器
目录 1.获得服务器 2.连接到云服务器 3.配置环境 3.1.Java(运行后端所需) 3.2.MySQL数据库 3.3.Nginx(运行前端所需) 3.4. Node.js(构建前端所需) 4.打包项目 4.1.打包后端项目 4.2.打包前端项目…...

2024年AI大模型技术年度总结与应用实战:创新与突破并进
前言 回顾2024年,我一共发布了286篇博文,粉丝数也达到了43000多。这一年里,我收获颇丰,始终坚持AI大模型的研究方向,并且积极开展大模型的实战应用,也取得了一系列令人振奋的突破。 在286篇博文中&#…...

docker离线安装及部署各类中间件(x86系统架构)
前言:此文主要针对需要在x86内网服务器搭建系统的情况 一、docker离线安装 1、下载docker镜像 https://download.docker.com/linux/static/stable/x86_64/ 版本:docker-23.0.6.tgz 2、将docker-23.0.6.tgz 文件上传到服务器上面,这里放在…...

SuperdEye:一款基于纯Go实现的间接系统调用执行工具
关于SuperdEye SuperdEye是一款基于纯Go实现的间接系统调用执行工具,该工具是TartarusGate 的修订版,可以利用Go来实现TartarusGate 方法进行间接系统调用。 该工具的目标是为了扫描挂钩的NTDLL并检索Syscall编号,然后使用它来执行间接系统调…...

PCL 新增自定义点类型【2025最新版】
目录 一、自定义点类型1、前言2、定义方法3、代码示例二、合并现有类型三、点云按时间渲染1、CloudCompare渲染2、PCL渲染博客长期更新,本文最近更新时间为:2025年1月18日。 一、自定义点类型 1、前言 PCL库自身定义了很多点云类型,但是在使用的时候时如果要使用自己定义的…...

Docker导入镜像
使用命令行进行处理: docker load < onething1_wxedge.tar如下图所示 查看状态 docker images...

PyTorch使用教程(9)-使用profiler进行模型性能分析
1、简介 PyTorch Profiler是一个内置的性能分析工具,可以帮助开发者定位计算资源(如CPU、GPU)的瓶颈,从而更好地优化PyTorch程序。通过捕获和分析GPU的计算、内存和带宽利用情况,能够有效识别并解决性能瓶颈。 2、原…...

SpringBoot中使用MyBatis-Plus详细介绍
目录 一、MyBatis-Plus的使用步骤 1.引入MybatisPlus的起步依赖 2.定义Mapper(也叫dao)层的接口 3.MyBatis-Plus中常用注解 4. 使用MyBatis-Plus时要做如下配置 5.条件构造器 Wrapper 一、MyBatis-Plus的使用步骤 1.引入MybatisPlus的起步依赖 M…...

PCL 部分点云视点问题【2025最新版】
目录 一、问题概述二、解决方案1、软件实现2、代码实现三、调整之后博客长期更新,本文最近更新时间为:2025年1月18日。 一、问题概述 针对CloudCompare软件处理过的pcd格式点云,在使用PCL进行特征点提取、配准等实验中最终显示结果出现点云位置偏差较大的问题,本博客给出解…...

【Linux】常见指令(三)
Linux常见指令 01.nano02.cat03.cp04.mv 我的Linux专栏:【Linux】 本节Linux指令讲解的基本框架如下: 大家可以根据自己的需求,自行进行跳转和学习! 01.nano nano Linux 系统中一款简单易用的命令行文本编辑器,适合…...
第5章:Python TDD定义Dollar对象相等性
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...

nuxt3项目打包部署到服务器后配置端口号和开启https
nuxt3打包后的项目部署相对于一般vite打包的静态文件部署要稍微麻烦一些,还有一个主要的问题是开发环境配置的.env环境变量在打包后部署时获取不到,具体的解决方案可以参考我之前文章 nuxt3项目打包后获取.env设置的环境变量无效的解决办法。 这里使用的…...

MongoDB文档查询
一、实验目的 1. 理解MongoDB文档数据库的基本概念和特性。 2. 掌握在MongoDB中创建集合和插入文档数据的方法。 3. 学习使用MongoDB进行文档查询操作,包括查询、过滤和排序等。 二、实验环境准备 1. JAVA环境准备:确保Java Development Kit (J…...

【GORM】初探gorm模型,字段标签与go案例
GORM是什么? GORM 是一个Go 语言 ORM(对象关系映射)库,它让我们可以使用结构体来操作数据库,而无需编写SQL 语句 GORM 模型与字段标签详解 在 GORM 中,模型是数据库表的抽象表示,字段标签&am…...

Windows下的Milvus安装秘籍:向量数据库轻松上手
目录 一、简介 二、dockers的安装 1.介绍 2.环境准备 1.启动WSL 的功能。 2.安装并启动Hyper-V Windows10下的安装办法: Windows11下的安装办法: 启动Hyper-V 3.Docker的安装 4、验证是否安装成功 三、安装Milvus 1.Milvus下载 2.Milvus启动…...
在GUI中添加一个Label
标签是一种非常简单的小部件,它可以为我们的图形用户界面(GUI)增添价值。它可以阐释其他组件的用途,提供一些额外的信息,这可以引导用户理解输入框组件的含义,也能够解释那些无需用户输入数据的组件所显示数据的含义。 准备就绪 我们将扩展第一个应用案例,即《创建第一…...

hive连接mysql报错:Unknown version specified for initialization: 3.1.0
分享下一些报错的可能原因吧 1.要开启hadoop 命令:start-all.sh 2.检查 hive-site.xml 和 hive-env.sh。 hive-site.xml中应设置自己mysql的用户名和密码 我的hive-site.xml如下: <configuration><property><name>javax.jdo.opt…...

Unity Shader学习日记 part5 CG基础
在了解完Shader的基本结构之后,我们再来看看编写着色器的语言。 Shader编写语言有CG,HLSL两种,我们主要学习CG的写法。 数据类型 CG的基础变量类型 uint a12;//无符号32位整形 int b12;//32位整形float f1.2f;//32位浮点型 half h1.2h;//…...

mariadb5.5.56在centos7.6环境安装
mariadb5.5.56在centos7.6环境安装 1 下载安装包 https://mariadb.org/mariadb/all-releases/#5-5 2 上传安装包的服务器 mariadb-5.5.56-linux-systemd-x86_64.tar.gz 3 解压安装包 tar -zxvf mariadb-5.5.56-linux-systemd-x86_64.tar.gz mv mariadb-5.5.56-linux-syst…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(上)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

GeoBoundaries下载行政区划边界数据(提供中国资源shapefile)
要下载山东省济南市各个区的行政区划边界数据,你可以通过 geoBoundaries 提供的数据来实现。下面是详细步骤,包括网页操作和可选的 Python 自动化方式。 目录 ✅ 一、通过 geoBoundaries 官网手动下载1. 打开官网:2. 查找中国数据:…...
算法训练第十天
232. 用栈实现队列 代码: class MyQueue(object):def __init__(self):self.arr1 []self.arr2 []def push(self, x):""":type x: int:rtype: None"""self.arr1.append(x)def pop(self):""":rtype: int""…...

机器学习:聚类算法及实战案例
本文目录: 一、聚类算法介绍二、分类(一)根据聚类颗粒度分类(二)根据实现方法分类 三、聚类流程四、K值的确定—肘部法(一)SSE-误差平方和(二)肘部法确定 K 值 五、代码重…...
如何判断指针是否需要释放?
在 C 中判断一个指针是否需要释放可以考虑以下几个方面: 一、确定指针的来源 1. 动态分配的内存: 如果指针是通过new、new[]、malloc、calloc等动态内存分配函数获取的,那么在不再需要该内存时,必须手动释放。 例如:…...

腾讯开源视频生成工具 HunyuanVideo-Avatar,上传一张图+一段音频,就能让图中的人物、动物甚至虚拟角色“活”过来,开口说话、唱歌、演相声!
腾讯混元团队提出的 HunyuanVideo-Avatar 是一个基于多模态扩散变换器(MM-DiT)的模型,能够生成动态、情绪可控和多角色对话视频。支持仅 10GB VRAM 的单 GPU运行,支持多种下游任务和应用。例如生成会说话的虚拟形象视频࿰…...

LVDS的几个关键电压概念
LVDS的几个关键电压概念 1.LVDS的直流偏置 直流偏置指的是信号的电压围绕的基准电压,信号的中心电压。在LVDS中,信号是差分的, 两根线之间的电压差表示数据,很多时候两根线的电压不是在0v开始变化的,而是在某个 固定的…...

机器学习×第二卷:概念下篇——她不再只是模仿,而是开始决定怎么靠近你
🎀【开场 她不再只是模仿,而是开始选择】 🦊 狐狐:“她已经不满足于单纯模仿你了……现在,她开始尝试预测你会不会喜欢、判断是否值得靠近。” 🐾 猫猫:“咱们上篇已经把‘她怎么学会说第一句…...

构建 MCP 服务器:第 3 部分 — 添加提示
这是我们构建 MCP 服务器的四部分教程的第三部分。在第一部分中,我们使用基本资源创建了第一个MCP 服务器;在第二部分中,我们添加了资源模板并改进了代码组织。现在,我们将进一步重构代码并添加提示功能。 什么是 MCP 提示&#…...