Python文件读写

article/2025/8/8 7:12:32

在使用python编程时,经常会遇到读写文件的操作。

很多童鞋困扰于读写文件的各种模式(如阅读、写入、追加等),以及搞不清open、read、readline、readlines、write等方法的使用。

这篇文章就是要告诉你Python文件读写的所有秘密!

 

01、open函数

如果你想用python读取文件(如txt、csv等),第一步要用open函数打开文件。

open()是python的内置函数,它会返回一个文件对象,这个文件对象拥有read、readline、write、close等方法。

open函数有两个参数:

open('file','mode')

参数解释

file:需要打开的文件路径

mode(可选):打开文件的模式,如只读、追加、写入等

mode常用的模式:

  • r:表示文件只能读取

  • w:表示文件只能写入

  • a:表示打开文件,在原有内容的基础上追加内容,在末尾写入

  • w+:表示可以对文件进行读写双重操作

 

mode参数可以省略不填,默认为r模式

mode参数还可以指定以什么样的编码方式读写文本,默认情况下open是以文本形式打开文件的,比如上面的四种mode模式。

当你需要以字节(二进制)形式读写文件时,只需要在mode参数中追加'b'即可:

 

  • rb:以二进制格式打开一个文件,用于只读

  • wb:以二进制格式打开一个文件,用于只写

  • ab:以二进制格式打开一个文件,用于追加

  • wb+:以二进制格式打开一个文件,用于读写

 

 

当你在默认模式下读取文本文件时(二进制文件不可以),文件中的换行符会转换为'\n'形式。

 

 

相反,在默认模式下写入文件时,文本中的'\n'会转换为换行符。

 

也就是说,你读取的txt文本,其中换行符会以'\n'形式出现,写入txt文本时,文本中的'\n'会变成换行指令。

  

with 关键字

在打开文件时,很多人通常直接用open('file'),这样并不酷。

最好使用 with 关键字。优点是当子句体结束后文件会正确关闭,即使在某个时刻引发了异常。

>>> with open('workfile') as f:... read_data = f.read()>>> f.closedTrue

 

02、close方法

打开文件并处理完毕后,需要关闭文件,这里用到close方法。

f.close() 用来关闭文件并立即释放它使用的所有系统资源。

如果你没有显式地关闭文件,Python的垃圾回收器最终将销毁该对象并为你关闭打开的文件,但这个文件可能会保持打开状态一段时间。

应该要养成使用close()的习惯。

 

使用方法很简单:

f = open(file) # 打开文件f.close() # 关闭文件

 

03、read方法

当使用open函数打开文件后,就可以使用该文件对象的各种方法了,read就是其中一种。

read()会读取一些数据并将其作为字符串(在文本模式下)或字节对象(在二进制模式下)返回。

 

read方法有一个参数:

f.read(size) # f为文件对象

参数size(可选)为数字,表示从已打开文件中读取的字节计数,默认情况下为读取全部。

 

假设有一个文件sample1.txt,内容如下:

This is python big data analysis!

现在读取该文件:

with  open('sample1.txt') as f:content = f.read() print(content)    f.close()

输出:

 

 

04、readline方法

readline方法从文件中读取整行,包括换行符'\n'。

换行符(\n)留在字符串的末尾,如果文件不以换行符结尾,则在文件的最后一行省略,这使得返回值明确无误。

如果 f.readline() 返回一个空的字符串,则表示已经到达了文件末尾,而空行使用 '\n' 表示,该字符串只包含一个换行符。

 

f.readline()有一个参数:

f.readline(size)

参数size表示从文件读取的字节数。

 

假设有一个文件sample2.txt,共三行,内容如下:

hello,my friends!

This is python big data analysis,

let's study.

 

我要用readline函数读取该文件:

with open('a.txt') as f: print(f.readline()) print(f.readline(5)) f.close()

输出:

 

readline方法会记住上一个readline函数读取的位置,接着读取下一行。

所以当你需要遍历文件每一行的时候,不妨使用readline方法吧!

 

05、readlines方法

readlines方法和readline方法长得像,但功能不一样,前面说过readline方法只读取一行,readlines方法则是读取所有行,返回的是所有行组成的列表。

 

readlines方法没有参数,使用更加简单。

依旧以sample2.txt为例

with open('a.txt') as f: print(f.readlines()) f.close()

 

输出:

 

 

06、write方法

write方法顾名思义,就是将字符串写入到文件里。

它只有一个参数:

f.write([str]) # f为文件对象

参数[str]代表要写入的字符串

使用起来也很简单,比如将下面字符串

'hello,my friends!\nthis is python big data analysis'

写入到文件sample3.txt里。

with  open('sample3.txt','w') as f: f.write('hello,my friends!\nthis is python big data analysis') f.close()

输出:

 


http://chatgpt.dhexx.cn/article/04BX1rd2.shtml

相关文章

python入门之文件的读写

1、python文件读写的方式 文件读写就是一种常见的IO操作。python封装了操作系统的底层接口,直接提供了文件读写相关的操作方法;文件读写不需要额外引入第三方库; 一个文件读写的步骤: 1、从硬盘中读取一个文件路径 2、加载文件到…

python写入文件没反应_Python 文件读写

&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp 预备知识 Python 入门 学习处理文件和保存数据可让你的程序使用起来更容易:用户将能够选择输入什么样的数据,以及在什么时候输入; 用户使用你的程序做一些工作后&#…

一文解决 Python读取文件的全部知识

文件是无处不在的,无论我们使用哪种编程语言,处理文件对于每个程序员都是必不可少的 文件处理是一种用于创建文件、写入数据和从中读取数据的过程,Python 拥有丰富的用于处理不同文件类型的包,从而使得我们可以更加轻松方便的完成…

python 文件读取

读取整个文件 操作文件的第一步就是得打开要操作的文件,然后进行读取。在python中我们可以使用open函数来打开一个文件,然后使用read方法来读取文件。 示例: import oswith open(data.txt, encodingutf-8) as file_obj:contents file_obj…

matlab中如何对一个小数取整,学习笔记153—matlab中小数如何取整?

matlab中小数取整的函数大约有四个:floor、ceil、round、fix 1、round取整方法是四舍五入 round函数功能:四舍五入取整。 使用方法:B round(A) 对数组A中每个元素朝最近的方向取整数部分,并返回与A同维的整数数组B,对…

建立一个植物毒性分类器:数据准备和清理

作者|Kenichi Nakanishi 编译|VK 来源|Towards Data Science 我有一个爱买植物的未婚妻,还有一只爱啃植物的猫——我想,有什么比把一个能告诉我植物是否安全的分类器更好呢! 需要注意的一点是,这里所做的所有工作都是在google colabs上完成的,使用的notebook可以在我的Gi…

我在百度Python小白逆袭大神课程中“打怪”欢乐之旅

本文描述了作者在参加百度Python小白逆袭大神课程一些亲身经历,从开始的半信半疑,到最后坚定的革命信念,给没有参加过百度课程的同学一点参考,文中有高质量的数据分析、pyecharts动态图,深度学习相关代码分享&#xff…

彻底解决Chrome浏览器劫持后显示“由贵单位管理(Managed by your organization)” 的解决办法

声明: Declaration: 由于网络中的病毒virus/malware等存在随时变异或者对应多种感染方式等情况,本文所针对的处理方法仅针对本次样本负责,个人如有误操作,后果自负。如需帮助,可以关注我的公众号&#xff…

Python sklearn学习之数据预处理——非线性转换

Python sklearn学习之数据预处理——非线性转换 文章目录 Python sklearn学习之数据预处理——非线性转换1. 两种常见的非线性转换1.1 分位数转换1.2 幂变换 2. sklearn中非线性变换的实现2.1 映射到均匀分布2.1.1QuantileTransformer类 2.2 映射到高斯分布2.2.1 Yeo-Johnson t…

javaScript学习笔记【尚硅谷】

javaScript学习笔记【尚硅谷】 这是我在看尚硅谷的前端大神超哥视频时,所记录的笔记! 文章目录 javaScript学习笔记【尚硅谷】[TOC](文章目录)1、javaScript基本知识1.2、JS编写位置1.3、JS基本语法1.4、变量与字面量1.5、标识符1.6、数据类型1.6.1、Nu…

机器学习流程及详细内容(1)

一般流程:数据收集、整理→数据预处理与特征工程(数据清理、集成、规约、变换、特征提取、筛选)→模型的选择与建立→模型的评估与优化。 数据收集 既可以使用公开的数据集,也可通过爬虫、购买或者实时数据的方式自己收集。 UC…

机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总

《Brief History of Machine Learning》 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机、神经网络、决策树、SVM、Adaboost到随机森林、Deep Learning. 《Deep Learning in Neural Networks: An Overview》 介绍:这是瑞士人工智能实验室Jurg…

Flutter 学习

Flutter 学习 参照:https://book.flutterchina.club/ 参照:https://flutter.cn/docs/development/platform-integration/platform-channels?tabtype-mappings-java-tab 目前进度:https://book.flutterchina.club/chapter9/animated_widgets…

原生开发如何学习 Flutter | 谷歌社区说

Hello 大家好,我是《Flutter 开发实战详解》的作者,Github GSY 系列开源项目的负责人郭树煜,目前开源的 gsy_github_app_flutter 以 13k 的 star 在中文总榜的 dart 排行上暂处第一名。 数据来源: https://github.com/GrowingGit/…

【CVRP】基于matlab遗传算法求解带容量的车辆路径规划问题【含Matlab源码 162期】

⛄一、VRP简介 车辆路径问题(VRP)最早是由 Dantzig 和 Ramser 于1959年首次提出,它是指一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物,由一个车队负责分送货物,组织适当的行…

matlab解决LRP类型的多配送中心路径优化问题

** 问题描述 ** 有关多配送中心的选址-路径优化问题,一般是通过基于区域内的客户需要求,对配送中心进行合理的选址以及配送中心的车辆调度以及路径优化。在给出的配送中心候选点位置已知,需要在给出的这些位置中,通过与顾客需求…

<代码分享> 一种无人机配合卡车配送的车辆路径规划模型

本文为本人博客《一种无人机配合卡车配送的车辆路径规划模型》的代码分享。 由于近期此文的关注者较多,代码分享较为不便,因此决定专门写一篇博客以提供源码。 感谢各位博友关注,本人能力有限,如有错误,还请及时批评指…

(附源码)springboot车辆管理系统 毕业设计031034

车辆管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中&…

QT+SQL Server实现车辆管理系统 -代码具体实现

QTSQL Server 实现车辆管理系统 -代码具体实现 1.摘要2.整体框架3.具体代码实现3.1 连接数据库3.2 登录操作3.3 申请账户3.4 添加车辆信息3.5 查询车辆信息3.6删除车辆信息3.7修改车辆信息3.8 添加司机信息 4.总结5.资源下载链接 1.摘要 前面一篇文章简要介绍了车辆管理系统的…

如何使用低代码进行车队管理?

处理任何业务都具有挑战性,但车队管理无疑是所有业务中的佼佼者。无论是司机短缺、环境问题、国际法规还是行业不稳定,车队经理都必须面对这一切。除此之外,还有数字化和路线优化的概念。数字化转型车队管理业务意味着消除挑战,拥…