当前位置: 首页 > 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…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

网站指纹识别

网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...