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

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是从最近负责项目中开始的。项目已经快要量产了,因为中间遇到的大大小小的问题&#xf…...

Qt界面篇:Qt停靠控件QDockWidget、树控件QTreeWidget及属性控件QtTreePropertyBrowser的使用

1、功能介绍 本篇主要使用Qt停靠控件QDockWidget、树控件QTreeWidget及Qt属性控件QtTreePropertyBrowser来搭建一个简单实用的主界面布局。效果如下所示。 2、控件使用详解 2.1 停靠控件QDockWidget QDockWidget可以停靠在 QMainWindow 内或作为桌面上的顶级窗口浮动。默认值…...

H266/VVC网络适配层概述

视频编码标准的分层结构 视频数据分层的必要性:网络类型的多样性、不同的应用场景对视频有不同的需求。 编码标准的分层结构:为了适应不同网络和应用需求,视频编码数据根据其内容特性被分成若干NAL单元(NAL Unit,NALU…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

golang循环变量捕获问题​​

在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下: 问题背景 看这个代码片段: fo…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: ​onCreate()​​ ​调用时机​:Activity 首次创建时调用。​…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

云原生安全实战:API网关Kong的鉴权与限流详解

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

从零手写Java版本的LSM Tree (一):LSM Tree 概述

🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...