Python文件——使用Python读取txt文件

news2024/12/22 19:46:01

作者:Insist--

个人主页:insist--个人主页

本文专栏:Python专栏

专栏介绍:本专栏为免费专栏,并且会持续更新python基础知识,欢迎各位订阅关注.

目录

一、文件的编码

1. 什么是编码

2. 常见的编码

二、Python文件的读取操作

1. 打开文件

2. 读取文件

3. 关闭文件

4. 自动关闭文件


前言

本文讲解了文件编码的概念以及Python文件读取的相关操作,比如:打开文件,关闭文件,读取文件。

一、文件的编码

我们知道计算机只能识别0和1,那么我们的文件是如何被计算机识别并存储到硬盘中的?这就要用到编码技术了,让我们继续往下看。

1. 什么是编码

编码就像是把信息“翻译”成计算机能懂的语言。前面说过计算机只懂得0和1,你去给计算机一篇文章,计算机不懂这是一篇文章,所以我们需要把文章“翻译”成计算机能理解的语言(0和1),这样计算机才能处理和传输信息。这个“翻译”的过程就是编码。

2. 常见的编码

计算机中,有非常多的编码技术,比如:ANSI、UTF-8、UTF-16,目前UTF-8是最常用的。

  • ANSI编码:在Windows操作系统下,ANSI编码代表的是GB2312编码,主要用于表示简体中文。在日文操作系统下,ANSI编码代表的是JIS编码。
  • UTF-8编码:UTF-8是一种可变长度的编码方式,用来表示几乎所有的字符,包括中文和其他双字节字符。
  • UTF-16编码:UTF-16是一种定长编码方式,表示一个字符需要2个字节。在Windows操作系统中广泛使用。

二、Python文件的读取操作

文件的内容如图:

1. 打开文件

想要使用Python打开计算机中的某个文件,可以使用open()函数来实现,使用open()函数需要传入三个参数,分别是:文件名、模式、编码类型

  • 文件名:就是你要打开的文件的名称
  • 模式:打开模式可以是只读模式('r'),写入模式('w'),追加模式('a')

r(只读模式):以只读模式打开文件。如果文件不存在,会直接报错

w(写入模式):以写入模式打开文件。如果文件不存在,会直接创建一个新文件。如果已存在,会清空文件并写入新内容。

a(追加模式):以追加模式打开文件,如果文件不存在,会直接创建一个新文件。如果已存在,会在文件末尾添加新内容。

  • 编码类型:大部分为UTF-8

例如:你想要打开一个名为abc.txt的文件并使用只读模式,可以这样写:

file = open('D:/abc.txt', 'r',encoding="UTF-8")

#打开D盘中的abc。txt文件,模式为只读(r)文件的编码为UTF-8

注意:文件的路径需要写完整

2. 读取文件

文件被打开后,你可以使用多种方法来读取文件的内容。比如:read()方法,readline()方法,readlines()方法

  • 方法一:read()方法  该方法用于读取文件内的全部内容,并将其作为字符串返回。例如:
# 打开文件
file = open('D:/abc.txt', 'r',encoding="UTF-8")
# 读取文件
f2 = file.read()
# 输出文件的内容
print(f2)
# 使用type()查看是否为字符串类型
print(type(f2))     

输出结果:如下图,使用read方法成功的输出了文件的全部内容,并且我们使用

  • 方法二:readline()方法  该方法一次读取文件的一行内容,每次调用都会返回下一行的内容。例如:
# 打开文件
file = open('D:/abc.txt', 'r',encoding="UTF-8")
# 读取文件
f2 = file.readline()
# 输出文件的内容
print(f2)

输出结果:如下图可以看到只输出了一行内容。

  • 方法三:readlines()方法  该方法读取整个文件,并将每一行内容作为字符串存储在列表中返回。例如:
# 打开文件
file = open('D:/abc.txt', 'r',encoding="UTF-8")
# 读取文件
f2 = file.readlines()
# 输出文件的内容
print(f2)


输出结果:如下图,文件中的内容已经存储在列表中。

3. 关闭文件

在完成文件读取操作后,你需要关闭文件以释放资源。可以使用close()方法来关闭文件。例如:

# 打开文件
file = open('D:/abc.txt', 'r',encoding="UTF-8")
# 读取文件
f2 = file.readlines()
# 输出文件的内容
print(f2)
# 解除占用 / 关闭文件
file.close()

4. 自动关闭文件

如果你怕忘记关闭文件,或者不想手动关闭,可以使用with语句来自动关闭文件。例如:

with open('D:/abc.txt', 'r',encoding="UTF-8") as f:
    # 打开文件
    f2 = f.read()
    # 输出结果
    print(f2)

在这个例子中,使用with语句可以确保在代码块执行完毕后自动关闭文件,无论是否发生错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软考】10.2 贪心法/回溯法/数据挖掘/智能优化

《贪心法》 适用于局部最优解 典型应用:背包问题 最有可能得到全局最优解:最大单位重量价值 ——> 重量 / 价值 《回溯法》 系统地搜索一个问题的所有解或者任一解深度优先,从根节点出发适用于解决迷宫类的问题 0-1背包算法的时间复杂度…

Python接口自动化之接口依赖!

以下主要介绍如何提取token、将token作为类属性全局调用及充值接口如何携带token进行请求。 一、场景说明 在面试接口自动化时,经常会问,其他接口调用的前提条件是当前用户必须是登录状态,如何处理接口依赖? 在此之前我们介绍过…

预训练机器阅读理解模型:对齐生成式预训练与判别式下游场景

©PaperWeekly 原创 作者 | 徐蔚文,李昕,邴立东等 单位 | 阿里巴巴达摩院 论文链接: https://arxiv.org/pdf/2212.04755.pdf 收录会议: NeurIPS 2023 论文链接: https://aclanthology.org/2023.acl-short.131.p…

038-第三代软件开发-简易视频播放器-自定义Slider (二)

第三代软件开发-简易视频播放器-自定义Slider (二) 文章目录 第三代软件开发-简易视频播放器-自定义Slider (二)项目介绍简易视频播放器自定义Slider (二)横向纵向 关键字: Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&…

进程(2)——进程状态(僵尸,睡眠……)【linux】

进程(2)——进程状态(僵尸,睡眠……)【linux】 一.操作系统的进程状态:1.1 运行态1.2 阻塞态1.3 挂起态 二.linux进程状态2.1 R——运行状态2.2 S——浅度睡眠状态2.3 D——(disk sleep&#xf…

【数智化人物展】阿里元境CTO郭旷野:元宇宙技术推动数字内容生产变革

郭旷野 本文由阿里元境CTO郭旷野投递并参与《2023中国企业数智化转型升级先锋人物》榜单/奖项评选。 数据智能产业创新服务媒体 ——聚焦数智 改变商业 数字经济发展的大背景下,数字技术持续演进,逐渐形成了数字化生活、数字化生产模式,与此…

从工厂到社会:探索如何应用设计模式工厂模式

文章目录 🌟 将设计模式工厂模式运用到社会当中🍊 工厂模式在社会中的应用🎉 工厂🎉 餐厅🎉 运输 🍊 工厂模式的优势🎉 代码简洁🎉 扩展性强🎉 便于维护和管理 &#x1f…

pytorch 笔记:KLDivLoss

1 介绍 对于具有相同形状的张量 ypred​ 和 ytrue(ypred​ 是输入,ytrue​ 是目标),定义逐点KL散度为: 为了在计算时避免下溢问题,此KLDivLoss期望输入在对数空间中。如果log_targetTrue,则目标…

【继承练习题--多态-- 动态绑定-- 重写】

文章目录 继承的练习题:多态多态实现条件 动态绑定什么是重写Override 注解重写的条件(缺一不可)有一种特殊的重写:叫协变类型重写的设计原则快捷键生成重写重写和重载的区别object类是所有类的父类 总结 继承的练习题&#xff1a…

芯片封装简介【待补充】

TO封装 最开始的封装,这类封装三脚的比较多,比如7805 7812 等电源芯片 STO三脚贴片封装 TO的贴片形式 三极管和LDO比较常见 DIP封装 51单片机(双列直插式封装) SIP封装单列直插式封装(罕见) 5. SOP封…

出师表排序

一.原文件 二.代码 package org.example;import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.List;public class day12 {public static void main(String[] args) {try (BufferedReader br new BufferedReader(new FileReader(…

Android 3D Launcher锁定IMU界面

故事背景: 最近工厂反馈由于VR设备老化测试完成之后,变绿界面不明显,只占3D系统一部分,每次需要戴头盔,才能确定老化完成。导致工厂效率变低,如果后期产能变大,效率更低。 1、针对以上需求我们需要拆分 1、…

动态规划-扫地机器人最少初始电量

扫地机器人在一个方格形状的地图中执行清扫任务,地图中每一个格子代表一个房间,地图用一个数组来表示: 1)扫地机器人从地图左上角出发,每次清扫完一个房间后只能向石或向下走到另外一个房间,最后到达右下角…

LeetCode--196. 删除重复的电子邮箱

文章目录 1 题目描述2 解题思路2.1 代码实现 1 题目描述 表: Person ---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ----------------------id 是该表的主键列(具有唯一值的列)。 该表的每…

售货机相关的电路

一、货道选通矩阵电路,类似扫描电路,驱动哪个电机,就打开相应的行线与列线输出 二、MDB纸币器,虽然现在国内都是手机支付,但如果机器还是外销国外还是有用 三、硬币器电路,投币与退币,脉冲信号…

解决git action定时任务执行失败的方法

为了测试git action定时任务是否有效,你可能选择一个最近的时间测试, 但是发现怎么也触发不了,是不是觉得很苦恼。但是同样的时间,在第二天的定时任务又能成功运行。 这是什么原因? 原因就在上图,git act…

【算法|动态规划No.31 | 01背包问题】01背包模板题

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

[双指针](一) Leetcode 283.移动零和1089.复写零

[双指针] Leetcode 283.移动零和1089.复写零 移动零 283. 移动零 1.题意分析 (1) 给你一个数组,将数组中的所有0移动到数组的末尾 (2) 保证非0元素在数组中相对位置不变 (3) 在原数组中操作 2.解题思路 由于题目要求我们移动数组内容(也就是交换两…

LED主流光源

LED主流光源 条形光源 (1)产品特点: ① 条形光源是大面积打光的首选光源,性价比高; ② 颜色可根据需求搭配,自由组合; ③ 光源照射角度与安装灵活可调。 (2)应用领域&a…

【Java 进阶篇】Java Request 获取请求体数据详解

在Java Web开发中,获取HTTP请求的请求体数据是一项常见任务。HTTP请求的请求体通常包含了客户端提交的数据,例如表单数据、JSON、XML等。在Java中,可以使用HttpServletRequest对象来获取HTTP请求的请求体数据。本文将详细解释如何使用Java获取…