【python学习】基础篇-文件与系统-打开与读取文件、文件操作的常用方法

news2025/1/12 7:41:53

打开与读取文件
在 Python 中,内置了文件(file) 对象。
在使用文件对象时,首先需要通过内置的 open0 方法创建一个文件对象,然后通过该对象提供的方法进行基本的文件操作。
open() 函数的语法格式如下:

file = open(filename[,mode[,buffering]])

其中参数 fle为被创建的文件对象:
flename 为要创建或打开文件的文件名称,需要使用单引号或双引号括起来。
如果要打开的文件和当前文件在同一个目录下,那么直接写文件名即可,否则需要指定完整路径
mode 为可选参数,用于指定文件的打开模式,默认的打开模式为只读(即r);
buffering 为可选参数,用于指定读写文件的缓冲模式,值为0表示不缓存,值为1表示缓存,如果值大于1,则表示缓冲区的大小。默认值为缓存模式。
在这里插入图片描述

在 Python 中打开文件后,可以读取文件中的内容。
文件对象提供了 readline()方法用于每次读取行数据。
readline()方法的语法格式如下:

file.readline()

打开文件后,需要及时关闭,以免对文件造成不必要的破坏。
关闭文件可以使用文件对象的close()方法实现。
close()方法的语法格式如下:

file.close()

文件操作的常用方法
文件读取操作通常有三种方法:
read() 方法表示读取全部或部分内容;
readline()方法表示逐行读取;
readlincs()方法表示读取所有行内容。

下面重点介绍 read()方法和readlines()方法。
read()方法
读取文件的全部或部分内容,对于连续的面向行的读取,则不使用该方法。语法格式如下:

fp.read([size])

其中,size 为可选参数,用于指定要读取文件内容的字符数(所有字符均按一个计算,包括汉字),如read(8),表示读取前8个字符。如果省略,则返回整个文件的内容。
注意:使用 read()方法读取文件内容时,如果文件大于可用内存,则不能实现文件的读取,而是返回空字符串。

readlines()方法
返回一个列表,列表中每个元素为文件中的一行数据,语法如下:

file.readlines()

除了进行文件读取操作,有时还需要获取或移动文件指针位置的操作,常用的操作方法有 tell()方法和 seek()方法。
tell()方法
返回一个整数,表示文件指针的当前位置,即在二进制模式下距离文件头的字节数,语法如下:

file.tell()

使用 tell()方法返回的位置与为 read() 方法指定的 size 参数不同。
tell()方法返回的不是字符的个数而是字节数,其中汉字所占的字节数根据其采用的编码有所不同,如果采用GBK 编码,则一个汉字按两个字节计算;如果采用 UTF-8 编码,则一个汉字按3 个字节计算。

scck()方法
将文件的指针移动到新的位置,位置通过字节数进行指定。这里的数值与 tell() 方法返回的数值的计算方法一致。语法如下:

file.seek(offset[ ,whence])

参数说明:
file:表示已经打开的文件对象。
offset:用于指定移动的字符个数,其具体位置与 whence 有关
whence: 用于指定从什么位置开始计算。值为0表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算,默认为 0。

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

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

相关文章

推荐系统学习之路

基本概念: 一、基本流程 b站王树森老师课程笔记 召回(retrieval):快速从海量数据中取回几千个用户可能感兴趣的物品。 方法: 协同过滤 相似度计算: 余弦, 杰卡德 矩阵分解: 将一个稀疏的用户评…

2022年宜昌市网络搭建与应用竞赛样题(三)

网络搭建与应用竞赛样题(三) 技能要求 (总分1000分) 竞赛说明 一、竞赛内容分布 “网络搭建与应用”竞赛共分三个部分,其中: 第一部分:网络搭建及安全部署项目(500分&#xff0…

Docker笔记(二)

一、Docker 复杂安装1.1、mysql 主从复制1.2、Redis1.2.1、Redis存储大量数据解决方案1.2.2、Redis 集群搭建1.2.3、数据读写存储1.2.4、容错切换转移1.2.5、主从扩容案例1.2.6、主从缩容案例 二、Dockerfile2.1、是什么?2.2、保留字指令2.3、案例 三、虚悬镜像3.1、…

Jetson Orin 平台MAX9296+森云SG5-IMX490C-GMSL2 RGGB(无ISP)驱动调试

1.前期调试说明 开发套件: AGX Orin 32GB模块 版本: JetPack 5.0.2 使用1台SG5-IMX490C-GMSL2-Hxxx IMX490 RGGB x4相机(无ISP), 通过max9296 GMSL2 LINKA接入到Orin CSI端口4 v4l2-ctl -d /dev/video0 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=5 [ 1282…

Django框架之视图概述和URL配置

概述 视图方法,简称视图,它可以接收一个Web request对象并向客户端返回一个Web response对象。response可以是任何对象,如HTML文档、重定向、404异常、XML文档甚至一张图片。在视图方法中可以进行任意的业务逻辑处理,例如查询数据…

运算符重载(全局函数与类的成员函数分别解析)

运算符重载(全局函数) 比如说对于小于号和大于号,如果说是内置类型的话,可以直接进行比较,因为内置类型是祖师爷定义的,那祖师爷肯定知道比方说int类型怎么比,double类型怎么比,因为…

STL之search()算法

我们之前介绍的find()算法以及find_if()算法都帮助我们查找判断某一个value是否被包含在序列中,并返回它第一次出现时所处的位置,假如我想找到某一段满足条件的子区间,应该怎么做呢?C标准库又为我们提供了哪些算法呢? …

2023年4月《中国数据库行业分析报告》正式发布(含精彩内容概览)

为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》,持续传播数据技术知识、努力促进技术创新与行业生…

C语言课设项目-51单片机-红外通信

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一. 什么是红外线 二. 红外线系统的组成 三. 红外发射管 四. 红外遥控器发射 五. 红外线接收 六.数…

还能这么玩?清华给 ChatGPT 做逆向,发现了 ChatGPT 的进化轨迹!

作者 |小戏、Python 立足一个 ChatGPT,现在对大模型的研究简直是百花齐发百家争鸣,用 ChatGPT 做化学实验、给 ChatGPT 做心理测试、诱导 ChatGPT 越狱泄漏隐私、让几个 ChatGPT 形成一个小社会等等不胜枚举。 而最近,清华的研究团队又在大模…

深度学习01-tensorflow开发环境搭建

文章目录 简介运行硬件cuda和cuddntensorflow安装。安装Anaconda创建python环境安装tensorflow-gpupycharm配置配置conda环境配置juypternotebook 安装cuda安装cudnn 简介 TensorFlow是一种端到端开源机器学习平台,它提供了一个全面而灵活的生态系统,包…

unity进阶学习笔记:有限状态机

一般来说,每一个游戏物体会有多种状态,每一个状态会对应一个特定动画。如一个游戏角色可能有静止状态,移动状态,攻击状态。每一个状态里都有对应的动画。如果我们只是简单使用一个个if语句判断玩家进行哪个控制来切换动画会让程序…

一文打尽目标检测NMS(2): 效率提升篇

文章来自于:曲終人不散丶知乎, 连接:https://zhuanlan.zhihu.com/p/157900024, 本文仅用于学术分享,如有侵权,前联系后台做删文处理。 在笔者上一篇文章《一文打尽目标检测NMS——精度提升篇》中&#xff0…

博客系统后端设计(三) - 实现获取博客列表页功能

文章目录 实现获取博客列表页功能1. 约定前后端交互接口2. 实现后端代码3. 实现前端代码4. 测试代码5. 涉及到的两个 Bug 实现获取博客列表页功能 当前的博客列表上的数据都是写死的,符合逻辑的做法是,通过数据库读取数据后显示到页面上。 此处就需要打…

【Linux】2.2 环境基础开发工具使用——vim

文章目录 什么是 vimvim 的基本操作vim 指令集Normal mode 指令集插入模式复制粘贴撤销剪切光标移动删除 last line mode 指令集列出行号跳到文件中的某一行查找字符保存文件 vim 的配置 什么是 vim Linux editor —— vim ——多模式的编辑器每种模式有差异,模式之…

人工智能洗稿-免费自媒体洗稿工具

文字洗稿 文字洗稿是指通过修改、重组、删除、替换等手段对文本进行优化、清理和调整,以达到改善文章质量、增加独特性和提高可读性的目的。文字洗稿是自媒体行业的一个重要需求,尤其是在批量撰写文章或需要大量修改文本的情况下。文字洗稿分为自动洗稿…

记一次springboot项目漏洞挖掘

前言 前段时间的比赛将该cms作为了题目考察,这个cms的洞也被大佬们吃的差不多了,自己也就借此机会来浅浅测试下这个cms残余漏洞,并记录下这一整个流程,谨以此记给小白师傅们分享下思路,有错误的地方还望大佬们请以指正…

云办公时代,企业如何保护数据资产安全?

云办公是一种基于云计算技术的办公方式,它将传统的办公软件和数据存储方式转移到了云端服务器上。用户可以通过互联网访问各种办公应用程序和数据,实现远程协作、移动化办公和信息共享等功能。 常见的云办公应用包括文档处理、电子邮件、日历、在线会议、…

ABAP 锁对象

需求场景 最近收到用户反馈,发现同一个托运单生成了两个不同的服务订单以及根据同一个送货单生成了两个托运单,经过排查,发现原因都是由同样的问题导致的,多窗口或者多用户同时对一条数据操作,就会出现这种现象。这个…

Learning C++ No.19【搜索二叉树实战】

引言: 北京时间:2023/5/2/9:18,五一放假第四天,昨天本来想要发奋图强将该篇博客写完,但是摆烂了一天,导致已经好几天没有码字,敲代码了,此时难受的感觉涌上心头,但是摆烂…