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

python基础语法11-文件读写

在 Python 中,文件操作是日常编程中的常见任务之一。Python 提供了简单且强大的工具来读取和写入文件。通过使用内置的 open() 函数、read()readline()write() 等方法,我们可以轻松实现对文件的操作。此外,Python 的 with 语句可以帮助我们高效地管理文件资源,确保文件在操作完成后被正确关闭。本文将详细介绍 Python 文件读写的基本操作和资源管理技巧。


1. 读取文件

Python 提供了多种方式来读取文件内容。首先,使用 open() 函数打开文件,然后通过各种方法读取文件内容。

1.1 open() 函数

open() 函数用于打开一个文件,并返回一个文件对象。它有两个常用的参数:

  • 文件名:指定要打开的文件。
  • 模式:指定文件的打开模式(例如,r 表示只读模式,w 表示写模式)。
file = open("example.txt", "r")  # 以只读模式打开文件

常见的打开模式:

  • "r":只读模式,文件必须存在。
  • "w":写模式,文件不存在时会创建,若文件存在则会覆盖。
  • "a":追加模式,文件不存在时会创建,若文件存在则在文件末尾追加内容。
  • "rb", "wb":以二进制模式读取和写入文件。

1.2 read() 方法

read() 方法用于读取文件的全部内容,它返回文件内容的字符串。如果文件较大,可以考虑分块读取。

file = open("example.txt", "r")
content = file.read()  # 读取文件的全部内容
print(content)
file.close()

1.3 readline() 方法

readline() 方法每次读取文件的一行,适用于需要逐行处理文件的情况。它会返回文件中的一行内容,包括换行符。

file = open("example.txt", "r")
line = file.readline()  # 读取一行
print(line)
file.close()

1.4 readlines() 方法

readlines() 方法一次性读取文件的所有行,并返回一个列表,每个元素是文件的一行。

file = open("example.txt", "r")
lines = file.readlines()  # 读取所有行并返回列表
print(lines)
file.close()

2. 写入文件

Python 提供了多种方法来向文件写入数据。可以使用 write()writelines() 方法进行写入。

2.1 write() 方法

write() 方法将字符串写入文件。如果文件已经存在,它会覆盖原有内容。

file = open("example.txt", "w")
file.write("Hello, Python!\n")  # 写入内容
file.write("Welcome to file handling.")  # 继续写入
file.close()

2.2 writelines() 方法

writelines() 方法接受一个序列(如列表)作为参数,并将其中的每个元素写入文件。不同于 write()writelines() 不会自动添加换行符。

lines = ["Hello, Python!\n", "Welcome to file handling.\n"]
file = open("example.txt", "w")
file.writelines(lines)
file.close()

3. with 语句管理文件资源

使用 with 语句来管理文件资源是一种推荐的做法。with 语句会在代码块执行完毕后自动关闭文件,无论是否发生异常,都能确保文件被正确关闭。这种方式比手动调用 file.close() 更加安全且简洁。

3.1 使用 with 语句读取文件

with open("example.txt", "r") as file:content = file.read()  # 读取文件内容print(content)

使用 with 语句打开文件后,不需要显式调用 file.close(),当 with 块结束时,文件会自动关闭。

3.2 使用 with 语句写入文件

with open("example.txt", "w") as file:file.write("Hello, Python!\n")file.write("Using with statement for file handling.")

通过 with 语句,我们确保文件资源的正确释放,无论程序是否发生异常。

3.3 with 语句的优势

  • 自动关闭文件:无需显式调用 file.close(),避免遗漏。
  • 异常安全:即使发生异常,with 语句也会确保文件被正确关闭,防止文件泄露。

Python 提供了强大的文件读写功能,可以方便地读取、写入文本文件或二进制文件。我们可以使用 open() 函数来打开文件,通过 read()readline()readlines() 等方法读取文件内容,使用 write()writelines() 方法将内容写入文件。此外,使用 with 语句管理文件资源是一种最佳实践,能够确保文件在使用完毕后自动关闭,提升代码的安全性和可维护性。

掌握这些文件操作方法后,你将能够轻松处理文件读写任务,保证程序在面对文件操作时更加高效和稳健。

相关文章:

python基础语法11-文件读写

在 Python 中,文件操作是日常编程中的常见任务之一。Python 提供了简单且强大的工具来读取和写入文件。通过使用内置的 open() 函数、read()、readline()、write() 等方法,我们可以轻松实现对文件的操作。此外,Python 的 with 语句可以帮助我…...

js实现跨域下载,展示下载进度以及自定义下载名称功能

一、 下载进度 loading弹窗结构 // loading状态DOM function setLoading() {let content document.querySelector(.loading)content.innerHTML content.innerHTML <div class"loading_content"><div class"contentBox"><div class&quo…...

MCP 实战系列(Day 2)- 动手搓个文件系统 MCP 服务器

上期回顾&#xff1a;MCP 实战系列&#xff08;Day 1&#xff09;- 什么是 MCP&#xff1f; 在上期文章中&#xff0c;我们详细介绍了 Model Context Protocol&#xff08;MCP&#xff09;的基本概念和应用场景。本节将带领大家开发一个简易的 Filesystem MCP Server&#xff…...

LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令自定义封装

ZMC408CE 高性能总线型运动控制器 ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器&#xff0c;具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口&#xff0c;ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。 ZMC408CE支持PLC、Basic、HMI组态三种编…...

Java接口性能优化面试问题集锦:高频考点与深度解析

1. 如何定位接口性能瓶颈&#xff1f;常用哪些工具&#xff1f; 考察点&#xff1a;性能分析工具的使用与问题定位能力。 核心答案&#xff1a; 工具&#xff1a;Arthas&#xff08;在线诊断&#xff09;、JProfiler&#xff08;内存与CPU分析&#xff09;、VisualVM、Prometh…...

Xilinx虚拟输入/输出(VIO)IP核详细介绍及使用示例

LogiCORE™ IP虚拟输入/输出(VIO)内核是一款可定制化的内核,能够实时监控和驱动FPGA(现场可编程门阵列)内部信号。其输入和输出端口的数量及位宽均可根据需求定制,以便与FPGA设计进行接口对接。由于VIO内核与被监控和/或驱动的设计保持同步,因此应用于您设计中的所有设计…...

Vue3+Vite+TypeScript+Element Plus开发-09.登录成功跳转主页

系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 登录成功跳转主页 多用户动态加载菜单 Pinia持久化 动态路由-配置 文章目录 目录 系列文档目…...

网络安全应急响应-启动项和任务计划排查

应急响应-启动项排查 在应急响应排查中&#xff0c;启动项和任务计划是攻击者常用的持久化手段。以下是对Windows和Linux系统的详细排查指南&#xff0c;涵盖基础步骤及扩展注意事项&#xff1a; 一、启动项排查 Windows系统 系统配置&#xff08;msconfig&#xff09; 运行 …...

Linux : 内核中的信号捕捉

目录 一 前言 二 信号捕捉的方法 1.sigaction()​编辑 2. sigaction() 使用 三 可重入函数 四 volatile 关键字 一 前言 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。在Linux: 进程信号初识-CSDN博客 这一篇中已经学习到了一种信号…...

开发效率提升200%——cursor

cursor带来的编程"革命" 高级语言编程转为"自然语言编程"借助cursor&#xff0c;直接超越初级后台开发、超越初级前端开发、超越初级测试、超越初级UI&#xff0c;产研一体linux命令只用学不用记&#xff0c;语言描述就是命令给一个表结构流程提示词&…...

微软庆祝它成立整整50周年

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

SpringBoot 整合 MCP

SpringBoot 整合 MCP MCP MCP 协议主要分为&#xff1a; Client 客户端&#xff08;一般就是指 openai&#xff0c;deepseek 这些大模型&#xff09;Server 服务端&#xff08;也就是我们的业务系统&#xff09;我们要做的就是把我们存量系统配置成 MCP Server 环境 JDK17…...

【详细】MySQL 8 安装解压即用 (包含MySQL 5 卸载)

卸载MySQL 1.卸载 2.安装目录删除残余文件&#xff08;当初安装的位置&#xff09; 3.删除programData下面的mysql数据文件 4.检查mysql服务是否存在&#xff0c;如果存在则删除&#xff08;先暂停mysql服务&#xff09; sc delete mysql 5.删除注册表中残留信息 安装MySQL 8&…...

显示器各类异常处理方法

显示器各类异常处理方法 导航 文章目录 显示器各类异常处理方法导航画面无显示/黑屏/无HDMI信号输入显示器闪烁显示器花屏显示画面模糊或扭曲显示器颜色异常显示器出现死点或亮点 画面无显示/黑屏/无HDMI信号输入 ​ 首先应该检查的是显示器电源&#xff08;真的有人弄掉电源…...

关于Spring MVC中@RequestParam注解的详细说明,用于在前后端参数名称不一致时实现参数映射。包含代码示例和总结表格

以下是关于Spring MVC中RequestParam注解的详细说明&#xff0c;用于在前后端参数名称不一致时实现参数映射。包含代码示例和总结表格&#xff1a; 1. 核心作用 RequestParam用于显式绑定HTTP请求参数到方法参数&#xff0c;支持以下场景&#xff1a; 参数名不一致&#xff1…...

HTML的svg元素

<svg>元素 <svg>是一种用于描述二维矢量图形的 XML 格式&#xff0c;可以直接嵌入 HTML 文档中。 <svg>基本用法 <svg>的几种基本用法,包括圆形&#xff0c;正方形&#xff0c;三角形&#xff0c;直线 &#xff0c;折线等 <body><svg widt…...

一、简单的 Django 服务

一、配置虚拟环境 1.1 创建一个文件夹在导航栏输入cmd打开 1.2 安装依赖两个库 pip install virtualenv virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple验证是否安装成功 virtualenv --version pip show virtualenvwrapper-win 1.3 创建虚拟环境 mkvi…...

二分算法的入门笔记

二分查找 使用前提&#xff1a;有序。可理解为枚举的一种技巧。时间复杂度&#xff1a; l o g ( n ) log(n) log(n) 基础模版代码 使用时根据情景进行相应的变化。注意跳出条件and分支处理方式and返回答案&#xff0c;三者之间的配合&#xff0c;不要进入死循环。可以在模拟…...

k8s黑科技:Linux+Vagrant+VirtualBox开启Kubernetes奇幻之旅

文章目录 1. 准备硬件2. 安装系统3. 安装 VNC4. 基础配置4.1 路由转发4.2 防火墙4.3 selinux4.4 安装包4.5 重启 5. 配置代理6. 安装 virtuabox7. 安装 vagrant8. 配置 kubespray8.1 安装依赖工具8.2 定制 Vagrantfile8.3 配置代理与时间同步8.4 配置私有镜像仓库 9. 安装虚拟机…...

34% 关税冲击下 LabVIEW 开发的变局

2025 年 4 月 4 日&#xff0c;中国国务院关税税则委员会宣布&#xff0c;自 4 月 10 日起对原产于美国的所有进口商品加征 34% 关税。这一举措&#xff0c;给 LabVIEW 开发领域带来显著影响&#xff0c;相关使用者和用户亟需采取应对策略。 ​ 从成本层面看&#xff0c;LabVI…...

42、JavaEE高级主题:WebSocket详解

WebSocket 一、WebSocket协议与实现 WebSocket是一种基于TCP协议的全双工通信协议&#xff0c;能够在客户端和服务器之间建立实时、双向的通信通道。通过WebSocket&#xff0c;客户端和服务器可以在任何时候发送数据&#xff0c;并立即接收到对方的响应。 1.1 WebSocket协议…...

Http代理服务器选型与搭建

代理服务器选型-Squid 缓存加速 缓存频繁访问的网页、图片等静态资源&#xff0c;减少对原始服务器的重复请求&#xff0c;提升响应速度支持HTTP、HTTPS、FTP等协议&#xff0c;通过本地缓存直接响应客户端请求 访问控制 基于ACL&#xff08;访问控制列表&#xff09;实现精细…...

蓝桥杯第十一届省赛C++B组真题解析

蓝桥杯第十一届省赛CB组真题解析 八、回文日期https://www.lanqiao.cn/problems/348/learning 方法一&#xff1a;暴力枚举所有的日期&#xff0c;记录有多少个回文日期。 #include <bits/stdc.h> using namespace std; int month[13]{0,31,28,31,30,31,30,31,31,30,31…...

Linux主要开发工具之gcc、gdb与make

此系列还有两篇&#xff0c;大家想完整掌握可以阅读另外两篇 Linux文本编辑与shell程序设计-CSDN博客 Linux基础知识详解与命令大全&#xff08;超详细&#xff09;-CSDN博客 1.gcc编译系统 1.1 文件名后缀 文件名后缀 文 件 类 型 文件名后缀 文 件 类 型 .c C源…...

排序算法(快速排序,选择排序......)【泪光2929】

hello&#xff0c;大家好&#xff01;今天给大家分享一下各种排序&#xff1a; 1&#xff0c;选择排序 首先从原始数组中 选择最小的1个数据&#xff0c;将其和位于第1个位置的数据交换。接着从剩下的n-1个数据中选择次小的1个元素&#xff0c;将其和第2个位置的数据交换然后…...

Conda使用方法详解

Conda是一个开源的包管理和环境管理系统&#xff0c;主要用于Python/R等科学计算领域&#xff0c;可以轻松管理不同项目的依赖关系。以下是Conda的详细使用方法&#xff1a; 一、安装与配置 1.安装Miniconda/Anaconda Miniconda是精简版&#xff0c;只包含conda和Python Ana…...

数据库的MVCC机制详解

MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并发控制&#xff09;是数据库系统中常用的并发控制机制&#xff0c;它允许数据库在同一时间点保存数据的多个版本&#xff0c;从而实现非阻塞的读操作&#xff0c;提高并发性能。 MVCC的核心思想是&…...

C++初阶-C++入门基础

目录 ​编辑 1.C的简介 1.1C的产生和发展 1.2C的参考文档 1.3C优势和难度 1.4C学习的建议 2.C的第一个程序 2.1打印Hello world 2.2头文件 2.3namespace命名空间 2.4&#xff1a;&#xff1a;作用域限定符 2.5namespace的延伸 2.6C的输入输出 3.总结 1.C的简介 …...

关于量化交易在拉盘砸盘方面应用的部分思考

关于“砸盘”的深层解析与操盘逻辑 ​​一、砸盘的本质与市场含义​​ ​​砸盘​​指通过集中抛售大量筹码导致价格快速下跌的行为&#xff0c;其核心目标是​​制造恐慌、清洗浮筹或实现利益再分配​​。不同场景下的砸盘含义不同&#xff1a; ​​主动砸盘&#xff08;操控…...

idea手动创建resources文件夹

有时maven没有构建成功可能造成&#xff0c;resources文件夹不创建的现象 此时我们可以手动创建 手动创建...