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

Python中的文件I/O操作

在Python编程中,文件I/O(输入/输出)是一个重要的主题,涉及如何读取和写入文件。无论是处理文本文件还是二进制文件,Python提供了简洁易用的接口。本文将介绍如何在Python中进行文件I/O操作,包括读取、写入和文件处理的最佳实践。

文件打开与关闭

在Python中,使用内置的open()函数打开文件。此函数返回一个文件对象,您可以使用该对象进行各种操作。

文件打开

# 打开文件,模式为'r'表示只读模式  
file = open('example.txt', 'r')

open()函数的常用模式包括:

  • 'r': 只读模式(默认),文件必须存在。
  • 'w': 写入模式,文件存在时会被清空,不存在则创建新文件。
  • 'a': 追加模式,写入数据时追加到文件末尾。
  • 'b': 二进制模式,与其他模式一起使用(如 'rb' 或 'wb')。
  • 'x': 独占写入模式,文件必须不存在。

文件关闭

使用完文件后,务必关闭文件以释放资源:

file.close()

使用with语句

使用with语句打开文件是一个更好的选择,因为它会自动处理文件的关闭,无论是否发生异常。

with open('example.txt', 'r') as file:  content = file.read()  print(content)

文件读取

逐行读取

您可以逐行读取文件内容,使用readline()readlines()方法:

with open('example.txt', 'r') as file:  # 使用readline()逐行读取  line = file.readline()  while line:  print(line.strip())  line = file.readline()  # 使用readlines()读取所有行  lines = file.readlines()  for line in lines:  print(line.strip())

读取所有内容

如果文件较小,可以使用read()读取全部内容:

 
with open('example.txt', 'r') as file:  content = file.read()  print(content)

文件写入

写入字符串

使用write()方法可以将字符串写入文件:

 
with open('output.txt', 'w') as file:  file.write("Hello, World!\n")

追加内容

使用追加模式'a'可以在文件末尾添加内容:

 
with open('output.txt', 'a') as file:  file.write("Appending a new line.\n")

读取二进制文件

您可以以二进制模式读取和写入文件,例如图像或音频文件:

 
# 读取二进制文件  
with open('example_image.png', 'rb') as file:  binary_content = file.read()  # 写入二进制文件  
with open('copy_of_image.png', 'wb') as file:  file.write(binary_content)

处理文件错误

在文件操作中,常常可能遇到错误(如文件不存在),您可以使用try-except块来处理这些异常:

try:  with open('non_existent_file.txt', 'r') as file:  content = file.read()  
except FileNotFoundError:  print("文件未找到,请检查文件名和路径。")

小结

Python的文件I/O操作简单而灵活,可以轻松地处理文本和二进制文件。使用with语句可以简化文件操作并避免资源泄漏。在处理文件时,注意捕获可能的异常,确保程序的健壮性。

希望这篇博文能帮助您更好地理解Python中的文件I/O操作!如果您有任何问题或建议,请随时留言。

相关文章:

Python中的文件I/O操作

在Python编程中,文件I/O(输入/输出)是一个重要的主题,涉及如何读取和写入文件。无论是处理文本文件还是二进制文件,Python提供了简洁易用的接口。本文将介绍如何在Python中进行文件I/O操作,包括读取、写入和…...

.net framework 3.5sp1开启错误进度条不动如何解决

浏览器地址栏输入www.dnz9.com远程解决netframework问题 在Windows操作系统上安装或启用.NET Framework 3.5 SP1时,如果遇到进度条不动的问题,可能由多种原因引起。以下是一些可能的解决方案: 1. 使用Windows功能对话框 1.打开“控制面板”。…...

什么影响网站的SEO排名

1.多IP多C段配置:海外站群服务器通常提供多IP多C段配置,这使得网站可以拥有多个独立的IP地址,有效避免同一IP下多个网站之间的关联性问题,降低被搜索引擎认为是站群作弊的风险。通过将不同的内容部署在不同的IP地址和C段上&#x…...

css绘制s型(grid)

在之前有通过flex布局实现了s型布局&#xff0c;是通过截取数组形式循环加载数据 这次使用grid直接加载数据通过css实现 <div id"app"><template v-for"(item,inx) in items"><div class"row"><template v-for"(ite…...

【华为HCIP实战课程二十八】中间到中间系统协议IS-IS邻居关系排错,网络工程师

一、ISIS邻居关系条件 1、同一层次(比如Level-2路由器不能和Level-1路由器形成邻居关系) 2、同一区域(L1必须同一区域) 3、同一网段 R1和R2之间分别配置如下IP地址和掩码: R1 的接口S1/0/0掩码为/24 R2的接口S1/0/0配置成掩码/28: 此时R1和R2依然可以建立ISIS邻居关系…...

Word首行空格不显示空格符号问题

Word段落首行空格设置指南 问题描述 在Word中编辑文档时&#xff0c;有时会遇到段落首行敲击空格键却不显示空格的问题。这通常与Word的自动更正设置有关。 解决方法 要解决此问题&#xff0c;需要调整Word的自动更正设置。具体步骤如下&#xff1a; 打开Word的"自动更…...

vue+element上传图片

一、html页面上传图片 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…...

用ChatGPT提升工作效率:从理论到实际应用

伴人工智能技术的迅速演进&#xff0c;像ChatGPT这类语言模型已成为提升工作效率的关键工具。这类模型不仅具备处理海量数据的能力&#xff0c;还能自动化许多日常任务&#xff0c;从而提高决策的准确性。本文将深入探讨如何在工作中利用ChatGPT等AI工具提升效率&#xff0c;涵…...

8、Node.js Express框架

五、Express框架 5.1概念 Express框架是一个基于Node.js平台的极简、灵活的WEB开发框架:www.express.com.cn 简单来说,Express是一个封装好的工具包,封装了很多功能,便于我们开发WEB应用 5.2安装 npm i express5.3 Express初体验 //01-express初体验.js //1.导入exrp…...

STM32F103C8T6学习笔记3--按键控制LED灯

1、实验内容 S4、S5分别接PB12和PB13&#xff0c;实验要求&#xff0c;按下S4&#xff0c;D1亮&#xff0c;D2灭&#xff1b;按下S5&#xff0c;D2亮&#xff0c;D1灭。 由于按键学习的是GPIO口的输入功能&#xff0c;和输出功能的配置略有区别。本次通过按键触发相应功能没有…...

Unity3D Shader实现法线贴图功能详解

在Unity3D中&#xff0c;Shader是一种强大的工具&#xff0c;可以帮助开发人员实现各种复杂的视觉效果&#xff0c;其中法线贴图功能就是其中之一。法线贴图是一种纹理映射技术&#xff0c;通过在模型表面上放置法线贴图纹理来模拟真实世界中的细节和凹凸&#xff0c;使模型看起…...

【含开题报告+文档+源码】基于SpringBoot+Vue的校园设备报修系统

开题报告 随着高校规模的不断扩大和设施设备的日益完善&#xff0c;传统的校园设备报修方式已经无法满足日益增长的维修需求。这种方式往往存在信息不准确、报修流程冗长、反馈不及时等问题&#xff0c;给高校维修工作带来了很大的困扰。为了提高设备故障处理的效率和准确性&a…...

电赛入门之软件stm32keil+cubemx

hal库可以帮我们一键生成许多基本配置&#xff0c;就不需要自己写了&#xff0c;用多了hal库就会发现原来用基本库的时候都过的什么苦日子&#xff08;笑 下面我们以f103c8t6&#xff0c;也就是经典的最小核心板来演示 一、配置工程 首先来新建一个工程 这里我们配置rcc和sys&…...

STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器

1、简要说明与电路图 LED灯与蜂鸣器都是GPIO的输出操作&#xff0c;给高低电平实现。GPIO操作也是后续操作的基础&#xff0c;没有什么难度&#xff0c;记不住寄存器没关系&#xff0c;只要把流程理清楚就可以了。 端口配置成推挽输出模式&#xff0c;高低电平均有驱动能力。 …...

Docker命令备忘录----Linux运维

1. Docker简介 Docker 是一个开源平台&#xff0c;旨在帮助开发人员和运维人员通过容器技术加速应用的开发、测试和部署。它提供了轻量级的隔离环境&#xff0c;使应用程序及其依赖能够快速打包并运行在任何环境中。 Docker的核心组件包括镜像&#xff08;Image&#xff09;、…...

Golang new() make var []int 使用的具体区别

一、数组和切片的初始化 1 var []int 格式 func main() {var t1 []intt1 append(t1, 1)fmt.Println(t1) //正常输出 1var t11 []intt11[0] 11 //panic: runtime error: index out of range [0] with length 0fmt.Println(t11)var t12 [1]intt12[0] 12fmt.Println(t12) /…...

【Linux驱动开发】多线程调用驱动时的并发与竞争(原子操作、自旋锁、信号量、互斥锁)

【Linux驱动开发】多线程调用驱动时的并发与竞争&#xff08;原子操作、自旋锁、信号量、互斥锁&#xff09; 文章目录 多线程调用驱动原子操作原子变量操作原子位操作调用方法 自旋锁读写锁顺序锁调用方法 信号量互斥锁&#xff08;互斥体&#xff09;中断中使用附录&#xf…...

qt QComboBox详解

QComboBox是一个下拉选择框控件&#xff0c;用于从多个选项中选择一个。通过掌握QComboBox 的用法&#xff0c;你将能够在 Qt 项目中轻松添加和管理组合框组件&#xff0c;实现复杂的数据选择和交互功能。 重要方法 addItem(const QString &text)&#xff1a;将一个项目添…...

redis做缓存,mysql的数据怎么与redis进行同步(双写一致性)

基于业务做选择,强一致性和允许延迟再加消息队列 强一致性:当修改了数据库的数据同时更新缓存的数据,缓存和数据库的数据保持一致 读操作:缓存命中,直接返回数据,缓存没有命中,查询数据库,写入缓存,设定过期时间 写操作:延迟双删 :先删除缓存,修改数据库,等待延迟(数据库主从节…...

WPF触发器

WPF触发器 触发器&#xff08;Trigger&#xff09;通常指的是一种事件驱动机制&#xff0c;用于响应特定的事件或条件。WPF触发器是WPF中一种强大的功能&#xff0c;允许开发者在样式和模板中定义条件逻辑&#xff0c;以响应属性值的变化。WPF提供了多种触发器来实现样式和模板…...

区块链前端技术栈介绍

这是一份完整区块链前端的学习路径&#xff0c;基于当前市场需求和技术趋势。 &#x1f5fa;️ 技术路线总览 阶段 1&#xff1a;基础入门 (1-2个月) 阶段 2&#xff1a;核心 Web3 技能 (2-3个月) 阶段 3&#xff1a;高级应用开发 (3-4个月) 阶段 4&#xff1a;架构与优化 (2-…...

论文被吐槽逻辑乱?,有哪些真正值得入手的的AI智能降重工具推荐?

毕业论文降AIGC率&#xff0c;优先选语义重构 学术优化 去AI痕迹的工具&#xff0c;免费与付费结合更高效。下面按中文、英文、免费/付费分类推荐&#xff0c;附实测效果与适用场景。 一、中文论文降重工具&#xff08;最常用&#xff09; 1. 千笔AI&#xff08;综合全能首选…...

DdddOcr:5分钟掌握Python验证码识别,彻底告别手动输入![特殊字符]

DdddOcr&#xff1a;5分钟掌握Python验证码识别&#xff0c;彻底告别手动输入&#xff01;&#x1f680; 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 还在为繁琐的验证码输入而烦恼吗&#xff1f…...

别再死记硬背公式了!用Excel+Python搞定数学建模三大评价模型(附代码)

用ExcelPython玩转数学建模三大评价模型&#xff1a;告别公式恐惧症 数学建模竞赛中&#xff0c;评价模型是绕不开的核心工具。但面对满屏的数学符号和抽象公式&#xff0c;很多同学的第一反应是头皮发麻——"这些矩阵运算到底怎么落地&#xff1f;""一致性检验…...

长鑫存储逆袭:从近10年亏损超366亿到盈利超预期,能否成“中国海力士”?

长鑫存储逆袭&#xff1a;从巨亏到盈利超预期&#xff0c;能否成为“中国海力士”&#xff1f;“韩国巨头布局存储&#xff0c;中国巨头热衷于外卖。”这一波存储涨价潮&#xff0c;很多人用戏谑的方式来表达对中国几家互联网公司的“恨铁不成钢”。但长鑫存储却凭借一份极度亮…...

为什么mob成为远程团队编程的首选工具?深度解析

为什么mob成为远程团队编程的首选工具&#xff1f;深度解析 【免费下载链接】mob Tool for smooth git handover. 项目地址: https://gitcode.com/gh_mirrors/mo/mob 在当今远程协作成为常态的时代&#xff0c;高效的团队编程工具变得至关重要。mob作为一款专为平滑Git交…...

在PC上体验PS4游戏:shadPS4模拟器入门与实战指南

在PC上体验PS4游戏&#xff1a;shadPS4模拟器入门与实战指南 【免费下载链接】shadPS4 PS4 emulator for Windows,Linux,MacOS 项目地址: https://gitcode.com/gh_mirrors/shad/shadPS4 还在为无法在PC上畅玩PS4独占游戏而烦恼吗&#xff1f;想象一下&#xff0c;那些只…...

为什么顶尖实验室已禁用传统关键词搜索?——Perplexity生物知识图谱推理机制首次公开(含3个未公开API调用逻辑)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;为什么顶尖实验室已禁用传统关键词搜索&#xff1f; 在高精度科研数据检索场景中&#xff0c;传统基于布尔匹配与词频统计的关键词搜索正迅速被语义驱动的向量检索范式取代。哈佛医学院计算生物学中心、DeepMi…...

终极指南:如何快速免费实现全网页截图完整捕获

终极指南&#xff1a;如何快速免费实现全网页截图完整捕获 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extension …...

从‘打包’到‘压缩’:一文理清Linux tar命令的-z、-j、-J参数该怎么选(附性能对比)

从‘打包’到‘压缩’&#xff1a;一文理清Linux tar命令的-z、-j、-J参数该怎么选&#xff08;附性能对比&#xff09; 在Linux系统管理中&#xff0c;文件归档与压缩是每位开发者绕不开的基础操作。当你面对几十GB的日志文件需要备份&#xff0c;或是需要将数百张高分辨率图片…...