Python基础(十八、文件操作读取)
文章目录
- 一、open方法
- 二、read和readlines方法
- 三、readline方法
- 四、关闭操作
- 五、with open语句
- 总结
一、open方法
Python 中可以使用 open 方法来打开一个文件,该方法会返回一个文件对象。open 方法的语法如下:
file_object = open(file_name, mode)
其中,file_name 是要打开的文件路径(可以是相对路径或绝对路径),mode 是打开文件的模式,包括以下几种:
- ‘r’:只读模式,打开文件后只能读取文件内容,不能修改文件。
- ‘w’:写入模式,打开文件后可以写入文件内容,如果文件不存在,则创建新文件;如果文件已存在,则清空文件内容。
- ‘a’:追加模式,打开文件后可以在文件末尾追加内容,如果文件不存在,则创建新文件。
- ‘x’:独占模式,创建新文件并打开,如果文件已存在,则抛出 FileExistsError 异常。
例如,如果要以只读模式打开一个名为 data.txt 的文件,可以使用以下代码:
file_object = open('data.txt', 'r',encoding="UTF-8")
二、read和readlines方法
打开文件后,可以使用 read 和 readlines 方法来读取文件内容。
read 方法:读取整个文件内容,并返回一个字符串。如果不指定参数,则默认读取整个文件内容;如果指定参数,则读取指定长度的内容。
# 读取整个文件内容
file_object = open('data.txt', 'r')
content = file_object.read()
file_object.close()# 读取指定长度的内容
file_object = open('data.txt', 'r')
content = file_object.read(10)
file_object.close()
readlines 方法:按行读取文件内容,并返回一个字符串列表。
file_object = open('data.txt', 'r')
lines = file_object.readlines()
file_object.close()
三、readline方法
除了 read 和 readlines 方法,还可以使用 readline 方法来逐行读取文件内容。
file_object = open('data.txt', 'r')
line1 = file_object.readline() # 读取第一行内容
line2 = file_object.readline() # 读取第二行内容
file_object.close()
四、关闭操作
在打开文件后,需要使用 close 方法来关闭文件对象,以释放系统资源。例如:
file_object = open('data.txt', 'r')
# 操作文件
file_object.close()
五、with open语句
除了手动关闭文件对象,还可以使用 with…open 语句来自动关闭文件对象。with 语句会在代码块执行结束后自动关闭文件对象,无需手动调用 close 方法。
with open('data.txt', 'r') as file_object:# 操作文件
下面是一个完整的例子,演示了如何打开文件、读取文件内容并关闭文件对象:
# 打开文件
file_object = open('data.txt', 'r')# 读取文件内容
lines = file_object.readlines()
for line in lines:print(line.strip())# 关闭文件
file_object.close()
总结
-
文件路径的表示方式:可以使用相对路径或绝对路径来表示文件路径。相对路径是相对于当前工作目录的路径;而绝对路径是从根目录开始的完整路径。在 Windows 系统中,文件路径使用反斜杠 \ 来分隔目录,但是在 Python 中,需要使用正斜杠 / 或双反斜杠 \ 来表示文件路径。
-
文件的打开模式:在打开文件时,可以指定文件的打开模式。常见的模式包括只读模式(‘r’)、写入模式(‘w’)、追加模式(‘a’)等。在打开文件时,需要确保文件不存在时不要使用只读模式,否则会抛出异常。
-
文件对象的关闭:使用 open 方法打开文件后,需要使用 close 方法来关闭文件对象,以释放系统资源。如果忘记关闭文件对象,会导致资源泄露和程序崩溃等问题。为了避免这种问题,建议使用 with…open 语句,在代码块执行结束后自动关闭文件对象。
-
文件内容的读取方式:可以使用 read、readline 和 readlines 方法来读取文件内容。read 方法会一次性读取文件的全部内容,适用于文件比较小的情况;readline 方法会逐行读取文件内容,适用于处理大型文件;readlines 方法会将文件的所有行读取到一个列表中,适用于需要对文件内容进行多次操作的情况。
注意:同一个方法未关闭文件时,多次使用readline、read、readlines方法时,读取的内容是衔接上次读取的位置继续读取的。 -
文件编码格式的问题:在读取文件时,需要指定正确的编码格式。否则会导致解码错误和乱码等问题。常见的编码格式包括 UTF-8、GBK、GB2312 等。如果不确定文件的编码格式,可以尝试使用 chardet 模块自动检测文件编码格式。
总结一下,Python 操作文件需要注意路径、打开模式、文件对象的关闭、文件内容的读取方式以及文件编码格式的问题。如果能够理解这些问题,并且正确使用相关的方法和技巧,就可以更加轻松地完成文件操作。
相关文章:
Python基础(十八、文件操作读取)
文章目录 一、open方法二、read和readlines方法三、readline方法四、关闭操作五、with open语句总结 一、open方法 Python 中可以使用 open 方法来打开一个文件,该方法会返回一个文件对象。open 方法的语法如下: file_object open(file_name, mode)其…...
Mac 16g约等于Windows多少g?
Mac 16g 内存等于 Windows 320g 内存 何为“黄金内存”? Mac 的内存是用黄金做的,而 Windows 的内存是用铁做的。 黄金的密度是 19.32 g/cm,而铁的密度是 7.874 g/cm。 因此,16g 的黄金体积是 0.082 cm,而 16g 的铁…...
快麦ERP退货借助APPlink快速同步CRM
什么是APPlink? APPlink是RestCloud打造的一款简单易用的零代码自动化集成平台,为业务流程提供自动化的解决方案,将企业内部的核心系统以及第三方应用程序和云服务等进行集成。无论是开发人员还是业务人员,都可以使用APPlink轻松…...
springMVC获取请求参数的方式
文章目录 springmvc获取参数的方式1、ServletAPI获取参数(原生态)2、通过控制器的形参取值3、 RequestParam4、通过POJO获取请求参数 springmvc获取参数的方式 1、ServletAPI获取参数(原生态) 将HttpServletRequest作为控制器方…...
android常用方法
获取应用安装来源 private String getAppInstaller(Context context, String packageName) {return context.getPackageManager().getInstallerPackageName(packageName);}判断是否系统应用 在/system/app 或者 /system/priv-app目录下的应用。 public boolean isSystem(Conte…...
Linux内核--网络协议栈(一)Socket通信原理和实例讲解
目录 一、引言 二、Socket ------>2.1、socket编程 ------>2.2、Socket的创建 三、收发数据 四、断开连接 五、删除套接字 六、网络 IO 一、引言 本章开始进入linux内核中网络部分的学习,先简单介绍一下socket套接字 二、Socket 一个数据包经由应用程序产生…...
Spring事务(2):声明式事务管理案例-转账(xml、注解)
1 编写转账案例,引出事务管理问题 需求:账号转账,Tom账号取出1000元,存放到Jack账号上 1.1 建表脚本(MySQL) CREATE TABLE t_account (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL,m…...
NACHI机器人模拟示教器如何切换中文
前言 现在开始学习机器人的编程语言,那么要学习会用首先得用模拟示教器来学习,但是全是英文确实比较难受一些些,没有中文来的直观。所以摸透一下如何给示教器更换语言。 具体步骤 步骤一:将中文的汉化包下载下来。具体的下载链…...
用通俗易懂的方式讲解:使用 Mistral-7B 和 Langchain 搭建基于PDF文件的聊天机器人
在本文中,使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序,可以从任何pdf文件中回答问题。 一、LangChain简介 LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few…...
综合智慧能源监测管理平台,实现能源管理“透明”化
能源问题是全球面临的最大问题,在提高经济增长的同时,也引发了能源供应危机及环境严重等问题,降低能源管理、低碳环保是我们未来发展的必经之路。 为了解决这一问题,智慧能源管理平台应运而生。平台采用微服务架构,整…...
【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步
【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax概述 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax快速入门 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图 【大数据进阶第三阶段之Datax学习笔记】使用…...
kotlin chunked 和 windowed
kotlin chunked的作用 将集合按照指定的数量分割成多个结合 val numbers listOf(0,1,2,3,4,5,6,7,8,9) //把集合按照一个结合3个元素分割 Log.d("chunked", numbers.chunked(3).toString()) // 打印结果 [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]] kotlin windowed…...
C语言光速入门笔记
C语言是一门面向过程的编译型语言,它的运行速度极快,仅次于汇编语言。C语言是计算机产业的核心语言,操作系统、硬件驱动、关键组件、数据库等都离不开C语言;不学习C语言,就不能了解计算机底层。 目录 C语言介绍C语言特…...
Flutter+Go_Router+Fluent_Ui仿阿里网盘桌面软件开发跨平台实战-买就送仿小米app开发
Flutter是谷歌公司开发的一款开源、免费的UI框架,可以让我们快速的在Android和iOS上构建高质量App。它最大的特点就是跨平台、以及高性能。 目前 Flutter 已经支持 iOS、Android、Web、Windows、macOS、Linux 的跨平台开发。 Flutter官方介绍,目前Flutte…...
内联函数的作用
目的 主要为了提升程序运行速度。 分析 当程序调用一个函数时,程序暂停执行当前指令,跳到函数体处执行,在函数执行完后,返回原来的位置继续执行。如果该函数为内联函数,则不需跳,是因为该内联函数直接插…...
Simpy简介:python仿真模拟库-02/5
一、说明 关于python下的仿真库,本篇为第二部分,是更进一步的物理模型讲解,由于这部分内容强依赖于第一部分的符号介绍,因此,有以下建议: 此文为第二部分,若看第一部分。建议查看本系列的第一部…...
Kafka高级应用:如何配置处理MQ百万级消息队列?
在大数据时代,Apache Kafka作为一款高性能的分布式消息队列系统,广泛应用于处理大规模数据流。本文将深入探讨在Kafka环境中处理百万级消息队列的高级应用技巧。 本文,已收录于,我的技术网站 ddkk.com,有大厂完整面经…...
LIN总线学习笔记(1)-总线传输规范
关注菲益科公众号—>对话窗口发送 “CANoe ”或“INCA”,即可获得canoe入门到精通电子书和INCA软件安装包(不带授权码)下载地址。 接触LIN是从最近负责项目中开始的。项目已经快要量产了,因为中间遇到的大大小小的问题…...
Qt界面篇:Qt停靠控件QDockWidget、树控件QTreeWidget及属性控件QtTreePropertyBrowser的使用
1、功能介绍 本篇主要使用Qt停靠控件QDockWidget、树控件QTreeWidget及Qt属性控件QtTreePropertyBrowser来搭建一个简单实用的主界面布局。效果如下所示。 2、控件使用详解 2.1 停靠控件QDockWidget QDockWidget可以停靠在 QMainWindow 内或作为桌面上的顶级窗口浮动。默认值…...
H266/VVC网络适配层概述
视频编码标准的分层结构 视频数据分层的必要性:网络类型的多样性、不同的应用场景对视频有不同的需求。 编码标准的分层结构:为了适应不同网络和应用需求,视频编码数据根据其内容特性被分成若干NAL单元(NAL Unit,NALU…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
