Python(五)——文件的读写

python基础学习之文件读写 文件的作用 就是把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力 文件的基础操作 打开文件 Python内置了一个open()方法,用于对文件进行读写操作。使用open()方法操作文件就像把大象塞进冰箱一样,可以分三步走,一是打开文件,二是操作文件,三是关闭文件。 open()方法的返回值是一个file对象,可以将它赋值给一个变量(文件句柄)。其基本语法格式为: filename 文件名称 mode 打开模式 打开模式常用的有 r(读模式,文件必须存在) w(写模式) 阅读详情
文件读写是常见的IO操作,Python读写文件的方法和java类似
读文件open()
    f = open(r'C:\Users\MARS\Desktop\remain_201805_no_uploaded.txt','r')
C:\Users\MARS\Desktop\remain_201805_no_uploaded.txt为文件绝对路径,r标识读--read
如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息:
Traceback (most recent call last):
  File "C:\Users\MARS\PycharmProjects\untitled1\.idea\pythonlearning.py", line 3, in <module>
    f = open(r'C:\\Users\MARS\Desktop\remain_20180_no_uploaded.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\\\Users\\MARS\\Desktop\\remain_20180_no_uploaded.txt'
如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示:
f.read()
使用print()函数可以显示f.read()内容
最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:
 f.close()
由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:

try:
    f = open(r'C:\Users\MARS\Desktop\remain_201805_no_uploaded.txt','r')
    print(f.read())
finally:
    if f:
        f.close()
但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法:

with open(r'C:\Users\MARS\Desktop\remain_201805_no_uploaded.txt','r') as f:
    print(f.read())    
调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。

    for line in f.readlines():
        print(line.split('_')[0])  # 按"_"分割取出第一个索引内容

像open()函数返回的这种有个read()方法的对象,在Python中统称为file-like Object。除了file外,还可以是内存的字节流,网络流,自定义流等等。file-like Object不要求从特定类继承,只要写个read()方法就行。

StringIO就是在内存中创建的file-like Object,常用作临时缓冲。


二进制文件


前面讲的默认都是读取文本文件,并且是UTF-8编码的文本文件。要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可:
 f = open('/Users/michael/test.jpg', 'rb')
  f.read()
  字符编码

要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
f.read()
遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')

写文件

写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:
f = open(r'C:\Users\MARS\Desktop\haha.txt','w')
f.write('Hello, world!')
f.close()
你可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用with语句来得保险:
with open(r'C:\Users\MARS\Desktop\haha.txt','w') as f:
                f.write('hello nimei')             
要写入特定编码的文本文件,请给open()函数传入encoding参数,将字符串自动转换成指定编码。

细心的童鞋会发现,以'w'模式写入文件时,如果文件已存在,会直接覆盖(相当于删掉后新写入一个文件)。如果我们希望追加到文件末尾怎么办?可以传入'a'以追加(append)模式写入。

例如:
with open(r'C:\Users\MARS\Desktop\haha.txt','a') as f:
                f.write('hello nimei'+'\n')  #写入时换行

Python文件读写 每个键值对由一个键(key)和对应的值(value)组成,键和值之间使用冒号(:)分隔,键值对之间使用逗号(,)分隔。然而,Python也支持使用正斜杠(/)来表示文件路径,即使在Windows上也是如此。总而言之,Python中使用正斜杠或反斜杠来表示文件路径都是可以的。在Python中,文件路径可以使用正斜杠(/)或反斜杠(\)来表示。在Python中,可以使用。因此,在这些系统上,使用正斜杠表示文件路径是常见的做法。在实际应用中,进行读写时,往往会忘记最后的关闭操作,所以可以使用。 阅读详情

相关推荐

Python编程实验五:文件的读写操作

Python编程实验五:文件的读写操作

Morse_Chen的博客 3942

Python实验报告五 python基础试题练习

1 编写程序,创建文件data.txt,共100行,第n行存放[100*(n-1), 100*n)之间的素数。2 批量生成50个人的随机信息,包括姓名,性别、年龄和成绩等。3 编写程序,显示当前程序的工作路径,并展示"C:\Windows\System32"下所有的空文件夹。1 自己定义一个异常类,继承Exception类, 捕获下面的过程:判断input()输入的字符串长度是否小于5,如果小于5,比如输入长度为3则输出:"The input is of length 3, expecting at ...

weixin_51717662的博客 2751

创建ZCB文件的代码

文件操作的小程序,根据选择的文件夹,自动查找文件,解析内容,自动拆分,创建后缀名为ZCB的文件

Python基础入门:第五章 python读写文件操作

和字符串的处理相关的是文件操作,把处理好的字符串写到文件里,这就涉及到字符串的操作。在python中文件的操作和c/c++语言类似,打开文件,把字符串写入到文件中。 open/文件操作 f=open('/tmp/hello','w') #open(路径+文件名,读写模式) #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式 如:‘rb’,‘wb’,'r+b’等等 读写模式的类型有: rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278) w

haleycat的博客 364

注册表文件

注册表文件 sp6.reg

python 如何将数据写入本地txt文本文件的实现方法

主要介绍了python 如何将数据写入本地txt文本文件的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

python-数据分析(5-文件读写操作)

文件读写操作 5 文件读写操作 5.1文件操作介绍 在实际操作中,通常采集本地数据来进行数据分析,那么就需要学习Python去对本地文档进行读取与写入等操作。比如:txt文件,json文件,csv文件,excel文件等。 本地文件操作步骤 打开文件 操作文件 关闭文件 Python操作txt文件 open(file, mode=‘r’,encoding=None) --> 打开文件 file --> 文件路径 mode --&

zaibiketaide的专栏 467

从“Hello World”到区域赛银牌:我的ACM算法打怪升级全记录(附各阶段工具包)

本文记录了作者从编程新手到ACM区域赛银牌获得者的完整学习历程,详细分享了各阶段的算法学习路线、刷题策略和实战经验。涵盖从基础算法到动态规划的系统训练方法,并附赠经过竞赛检验的工具包和资源清单,为算法竞赛爱好者提供实用参考。

weixin_29201859的博客 123

Python基本语法(五)——文件读写

文件读写包括文件读取和写入文件。

XYY_Nico的博客 6516

GD32F303调试小记(一)之USART(接收中断、接收空闲中断+DMA、发送DMA)

前言 之前写了GD32F103调试小记(二)之USART(接收中断、接收空闲中断+DMA、发送DMA)一文。这次我们来看看GD32F303的USART是如何配置的,结合这两篇文章,相信大家GD32的USART配置流程会十分熟悉。 DMA 能大大减轻CPU负荷的东西,建议场景合适的情况下,都去用DMA功能。 USART 一种串行通信协议, ...

欢喜6666的博客 3万+

告别手动拖拽!PyQt5/PyQt6 QTableView列宽自适应窗口的三种实战方案(附性能对比)

本文详细介绍了PyQt5/PyQt6中QTableView列宽自适应窗口的三种实战方案,包括Stretch模式、resizeEvent手动计算和ResizeToContents模式,并附有性能对比。帮助开发者解决窗口大小变化时列宽不变的常见问题,提升用户体验和开发效率。

weixin_42538752的博客 234

python 读写文件 另存为_python读写文件(五)

今天继续分享python读写文件。首先介绍一个新的函数open(),这个函数是干什么的呢?在python里面可以用open函数来打开文件。要用open函数打开一个文件,就是要向它传递一个字符串路径,表明希望打开的文化,这个既可以是绝对路径,也可以是相对路径。open函数返回的是一个File对象。我们可以尝试一下,先用Notepad或TextEdit创建一个文本文件,名字就叫py.txt。输入Hel...

weixin_39626237的博客 1125

EtherCAT主站开发(学习笔记一)

摘要:本文介绍了基于STM32H7的EtherCAT主站开发探索。EtherCAT是一种高实时性工业以太网协议,具有低延迟、高带宽利用率等特点。文章详细解析了EtherCAT的协议架构、帧结构和工作原理,重点阐述了PDO数据传输过程及主从站通信机制。同时介绍了CoE、FoE等应用层协议扩展。作者将基于SOEM开源协议栈进行开发,为后续实际应用中的伺服电机控制奠定基础。

weixin_69388007的博客 1475

Python 从入门到跑路 【五】文件读写

文件读写 我们用windows的读写文本内容,首先要打开txt文件。在python中也需要打开文件,使用的open函数打开文件,并且创建file对象保存在内存中。open函数,第二个参数来指定模式。 &quot;r&quot;模式下,文件只能被读取,不能写入内容。 # 第一种 &quot;r&quot;只读模式 file = open(&quot;source/python_io.txt&quot;,&quot;r&quot;)

w526903454的博客 345

用COMSOL计算复合材料板频散曲线:从建模到绘图全流程

导波在板结构中传播时,不同频率成分的速度不同,即频散现象。理解频散曲线是识别导波模态、确定相速度与群速度的基础,也是无损检测和结构健康监测中信号解读的关键。对于碳纤维增强复合材料等各向异性板,频散关系更加复杂,传统解析方法难以求解,数值仿真成为主流手段。通过COMSOL结合周期性边界条件与特征频率扫描,可以高效计算出复合材料板的频散曲线,进而绘制相速度和群速度随频率变化的图谱,为实验模态识别、换能器激励频率选择提供依据。本文以一个2毫米单向碳纤维板为例,详细介绍几何建模、材料参数设置、网格收敛验证、参数扫描

weixin_31412781的博客 235

高空抛物监控系统:基于YOLOv8的轨迹追踪与可视化系统

本文详细介绍了一种基于YOLOv8深度学习模型的高空抛物监控系统,该系统能够实时检测并追踪高层建筑抛掷物的运动轨迹。文章包含完整的系统设计思路、算法实现细节、数据集构建方法以及基于PyQt5的可视化界面开发过程。我们提供了完整的Python实现代码,并讨论了系统的性能优化策略和实际部署考量。此外,我们还推荐了几个公开可用的高空抛物数据集,并详细分析了系统的应用前景和技术挑战。

YOLO 446

Python学习笔记(五)——读写文件

文件与文件路径 window上的 ‘\’ 和 Linux与OS X 上的 ‘/’ window上的路径为:C:/Python/Python37/phoneAndEmail.py OS X 和 Linux上的路径为: usr/bin/spam 所以如果要使你的Python程序在各种系统上通用,在涉及文件目录的情况下可以使用os.path.join() ,这个函数会自动根据系统进行匹配

Mq_Go的博客 1052

粒子群优化与蚁群算法求解多旅行商问题

它要求在给定一组城市和旅行商之间的距离矩阵的情况下,找到一条最优的路径方案,使得所有旅行商可以分别从起始城市出发,途径其他城市,并最终回到起始城市,同时总旅行距离达到最小。这两种算法都是基于群体智能的优化算法,在求解组合优化问题时具有较好的性能表现。假设有n个城市需要被m个旅行商访问,城市间的距离由距离矩阵D表示,其中D(i,j)表示第i个城市到第j个城市的距离。粒子群优化算法是一种基于群体智能的优化算法,其中的粒子代表了潜在的解,并通过模拟粒子在解空间中的移动来搜索最优解。一、多旅行商问题建模。

m0_47037246的博客 553

python基础汇总(五)——文件读写、备份,批量修改文件夹,os模块操作

使用文件的目的: 就是把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力 文件的打开和关闭 <1>打开文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式) 示例如下: f = open('test.txt', 'w') 说明: 常用的有:r,b,rb,wb <2>关闭...

IT_Mr_guo的博客 710

【Simulink教程案例18】基于simulink的基础OFDM+64QAM发射接收链路仿真

OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的。

FPGA/MATLAB学习教程/源码/项目合作开发 1990

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python程序设计( 五 文件操作、综合应用)——5.4文件的定位读写

文章目录5.4.1 获取当前读写的位置5.4.2 定位到某个位置 5.4.1 获取当前读写的位置 在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取 # 打开一个已经存在的文件 f = open("test.txt", "r") str = f.read(10) print("读取的数据是 : ", str) # 查找当前位置 position = f.tell() print(...

qq_951274168的博客 455

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python文件读写英文学习字典_Python学习系列(五)(文件操作及其字典)

一、文件操作1,读文件在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出,也可以指定每次read读多少字节,例如:1 #coding:utf-82 fn='test1.py'3 fp=open(fn,'r') #以读的方式打开文件,文件必须首先存在和,.文件在同一目录下py4 print 'reading pos:',fp.tell()5 r=fp.read(20) #读取文...

weixin_39767513的博客 268

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python零基础入门(五)——文本文件读写和操作[学习笔记]

一、文件读写 1.文件读写模式 ⽂件的打开模式:只读,写⼊,追加。 下⾯列出了python⽀持的⼤部分模式: # 以只读⽅式打开⽂件。⽂件的指针将会放在⽂件的开头。这是默认模式。 f = open("user_data", "r") # 以⼆进制格式打开⼀个⽂件⽤于只读。⽂件指针将会放在⽂件的开头。 f = open("user_data", "rb") # 打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂件的开头。 f = open("user_data", "r+") # 打开⼀个⽂件只⽤于写⼊。如果该⽂件已

lilien的博客 687

五、python基础22年_关于文件读写_2025-2-24

主要总结文件读写、追加模式a,图片读取,文件复制、修改

weixin_39534232的博客 152

python文本文件操作_Python零基础入门(五)——文本文件读写和操作[学习笔记]...

一、文件读写1.文件读写模式⽂件的打开模式:只读,写⼊,追加。下⾯列出了python⽀持的⼤部分模式:# 以只读⽅式打开⽂件。⽂件的指针将会放在⽂件的开头。这是默认模式。f = open("user_data", "r")# 以⼆进制格式打开⼀个⽂件⽤于只读。⽂件指针将会放在⽂件的开头。f = open("user_data", "rb")# 打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂件的开头。f ...

weixin_39761696的博客 261

【Python 文件读写】— txt文件

使用Python对txt文件进行读写操作

yang4123的博客 1万+
上一篇: Python(四)——函数、模块
下一篇: oracle触发器简介与使用方法
AA赵师傅
博客等级 码龄9年 89粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值