082、Python 读文本文件

在Python中读取txt文本文件可以通过内置的open()函数结合file对象的read(), readline(), readlines()等方法实现。

1. 使用read()方法

read()方法会读取文件的全部内容,并将其作为一个字符串返回。

# 打开文件并读取全部内容with open('Resources/雨巷.txt', 'r', encoding='utf-8') as file:content = file.read()print(content)

这里有几点需要注意的:

(1)这里用到的是文件的相对路径,也可以使用文件的绝对路径,如C:\Users\admin\Desktop\雨巷.txt。

(2)with语句是推荐的文件操作方式,它可以自动管理文件的打开和关闭(它可以避免文件损坏或资源泄露)。

(3)这里指定了文件的编码格式为encoding='utf-8',这对于处理非ASCII字符(如中文)的文件非常重要。假如环境中的默认编码方式已设置为utf-8,可以不带这个参数,假如不确定,可以使用以下方法检查:

import sys# 检查环境中文件的编码方式
print(sys.getdefaultencoding())

2. 使用readline()方法

readline()方法每次读取文件中的一行。

# 打开文件并逐行读取
with open('Resources/雨巷.txt', 'r', encoding='utf-8') as file:line = file.readline()while line:print(line, end='')  # end='' 避免打印额外的换行符line = file.readline()

3. 使用readlines()方法

readlines()方法会读取整个文件,并将文件的每一行作为一个元素存储在列表中返回。

# 打开文件并读取全部行到一个列表中
with open('Resources/雨巷.txt', 'r', encoding='utf-8') as file:lines = file.readlines()for line in lines:print(line, end='')  # 同样,end='' 避免打印额外的换行符

4.读大文本文件

当我们读取的文本文件很大时,由于内存的限制,我们就不能用read()readlines()方法。我们可以采用一种逐步读取文件内容的方法。

1、逐行读取:

for循环中直接使用文件对象时,由Python自动逐行迭代文件,也可以使用上面的readline()方法。

with open('Resources/雨巷.txt', 'r', encoding='utf-8') as file:for line in file:# 处理每一行print(line, end='')  # 如果不需要额外的换行符,可以使用end=''

2、分块读取

使用read(size)方法,通过size设置每次读取的字符数。

with open(file='Resources/雨巷.txt', mode='r', encoding='utf-8') as file:chunk_size = 20  # 例如,每次读取20个字符chunk = file.read(chunk_size)while chunk:print(chunk, end='')  # 如果不需要额外的换行符,可以使用end=''chunk = file.read(chunk_size)

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

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

相关文章

Vue中Key的作用

在Vue中,Key的作用主要体现在以下几个方面: 1. 唯一标识列表元素 Key是Vue中用于唯一标识列表元素的特殊属性。在使用v-for指令渲染列表时,每个列表项都应该拥有唯一的key,这样Vue就能准确地追踪每个节点的身份,从而…

linux中当前目录、上级目录、上上级目录表示方法

1,cd [目录名]:表示进入某个目录 . :代表当前的目录,也可以使用 ./ 来表示;(一个点表示当前目录) . . :代表上一层目录,也可以 ../ 来代表。(两个点表示当前目录的上一层目录) ../..…

封装网络请求 鸿蒙APP HarmonyOS ArkTS

一、效果展示 通过在页面直接调用 userLogin(params) 方法,获取登录令牌 二、申请网络权限 访问网络时候首先需要申请网络权限,需要修改 src/main 目录下的 module.json5 文件,加入 requestPermissions 属性,详见官方文档 【声明权…

鸿蒙 next 5.0 版本页面跳转传参 接受参数 ,,接受的时候 要先定义接受参数的类型, 代码可以直接CV使用 [教程]

1, 先看效果 2, 先准备好两个页面 index 页面 传递参数 import router from ohos.routerEntry Component struct Index {Statelist: string[] [星期一, 星期二,星期三, 星期四,星期五]StateactiveIndex: number 0build() {Row() {Column({ space: 10 }) {ForEach(this.list,…

【Git远程操作】向远程仓库推送 | 拉取远程仓库

目录 1.向远程仓库推送 ​1.1本地仓库的配置 1.2remote-gitcode本地仓库 1.3推送至远程仓库 2.拉取远程仓库 现阶段以下操作仅在master主分支上。 1.向远程仓库推送 工作区☞add☞暂存区☞commit☞本地仓库☞推送push☞远程仓库注意:本地仓库的某个分支 ☞推…

《Techporters架构搭建》-Day01 第一个RESTful API接口

微服务架构搭建 搭建微服务架构分析一下项目的build.gradle添加Demo接口 搭建微服务架构 首先搭建系统管理模块,模块结构如下 tps-cloud └── tps-system -- 系统管理模块└── tps-system-api -- 系统管理模块公共api模块└── tps-system-biz -- 系统管理模…

单片机设计_自行车码表(AT89C51, LCD1602, DS1302,霍尔传感器)

想要更多项目私wo!!! 一、电路设计 系统采用51单片机LCD1602液晶DS1302时钟模块霍尔传感器电机按键模块蜂鸣器报警模块设计而成。 产品自带单片机上电复位电路、手动复位电路(复位按键)、晶振电路(给单片机提供时钟周期)。 …

Zabbix介绍和架构

目录 一.Zabbix简介 1.为什么需要监控 2.需要监控什么 3.常见的监控工具 4.Zabbix使用场景及系统概述 5.Zabbix 架构 6.Zabbix工作流程 7.Zabbix 术语 二. 部署安装zabbix 三.zabbix 配置文件 一.Zabbix简介 1.为什么需要监控 运维行业有句话:“无监控、不运维”&am…

AGV平面坐标系变换公式及实例

1、AGV坐标系简介 如上图,小车前后对角是有激光雷达的,其坐标系称为激光坐标系,采用极坐标系体现。中间为车体坐标系,激光坐标系相对于车体坐标系关系不变;左下角是地图坐标系,小车扫图后,建立的…

Java开发如何短时间准备 Java 面试?

发现一个问题,Java开发如何短时间准备 Java 面试? 本科应届毕业生,打算玩命一个月,争取三月份参加面试(面正式岗,非实习),主要还是java工作,我现在的程度是:j…

探索智慧职校教职工管理的教师信息功能

在智慧职校的教职工管理体系中,教师信息管理犹如教师职业生涯的数字罗盘,引领着教师个人成长与学校教学质量的双轨并进。这一模块的核心精髓在于对教师基本信息的精细捕捉与维护,确保每位教师的个人资料,诸如姓名、性别、出生日期…

RK3588核心板怎么选?为项目挑选合适核心板的五大建议

在信息爆炸的互联网海洋中,面对琳琅满目的RK3588核心板产品,您是否也曾感到眼花缭乱,难以抉择?究竟哪一款能够完美契合您的智能设备开发项目,让您在最短时间内找到最合适的伙伴,减少研发试错,加…

python 打包工具 nuitka 使用笔记

个人感受: 感觉和 pyinstaller 差不多。 目前还没感受到什么差别。 但是有很多人都推荐这个。 当前只是初步尝试,记录一下大体过程。后面有时间了,再找几个例子看看。 比如找点复杂的项目, 或是游戏项目,然后打包一下看看效果。 …

Day58:并查集 108.冗余连接 109.冗余连接II

108. 冗余连接 时间限制:1.000S 空间限制:256MB 题目描述 树可以看成是一个图(拥有 n 个节点和 n - 1 条边的连通无环无向图)。 现给定一个拥有 n 个节点(节点标号是从 1 到 n)和 n 条边的连通无向图&…

【瓴岳科技】历史面试题

【瓴岳科技】历史面试题 1. 公司简介2. 写一个lru 1. 公司简介 瓴岳科技(Fintopia)是以大数据和人工智能为基础的数字科技集团,致力于通过科技提高金融服务的品质与效率,为全球用户提供卓越的金融体验。2015年成立至今&#xff0…

wandb本地部署

pip install --upgrade wandbwandb server start(如果失败了) docker pull wandb/local:latest启动 docker run --rm -d -v wandb:/vol -p 8080:8080 --name wandb-local wandb/local:latest打开http://localhost:8080/signup (有可能失败&…

42、PHP 实现把二叉树打印成多行

题目&#xff1a; PHP 实现把二叉树打印成多行 描述&#xff1a; 从上到下按层打印二叉树&#xff0c;同一层结点从左至右输出。每一层输出一行。 <?php/*class TreeNode{var $val;var $left NULL;var $right NULL;function __construct($val){$this->val $val;} }…

python处理DWG文件

ezdxf是一个用于处理DXF&#xff08;Drawing Exchange Format&#xff09;文件的Python库。虽然它主要用于DXF文件&#xff0c;但因为它可以处理由AutoCAD和其他CAD程序生成的许多图形实体&#xff0c;所以有时也被用于间接处理DWG文件的内容&#xff0c;前提是DWG文件已经被转…

LeetCode热题100刷题16:74. 搜索二维矩阵、33. 搜索旋转排序数组、153. 寻找旋转排序数组中的最小值、98. 验证二叉搜索树

74. 搜索二维矩阵 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int row matrix.size();int col matrix[0].size();for(int i0;i<row;i) {//先排除一下不存在的情况if(i>0&&matrix[i][0]>target…

Qt Style Sheets-入门

Qt 样式表是一种强大的机制&#xff0c;允许您自定义小部件的外观&#xff0c;这是在通过子类化QStyle已经可行的基础上的补充。Qt 样式表的概念、术语和语法在很大程度上受到 HTML级联样式表 (CSS)的启发&#xff0c;但适用于小部件的世界。 概述 样式表是文本规范&#xff0…