文件打开Python零碎知识(3):对文件的基本操作 文件打开

本文详细介绍了Python中文件的打开、关闭、读取和写入等基本操作,包括使用open函数的各种参数设置,以及如何处理文件读写过程中的异常。

查了好多资料,发明还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!

    一、概述

    Python内置数函open,用来打开在盘磁上的文件,并返回一个文件对象,有所对该文件的后续操纵都是通过这个"句柄"来停止的,文件法方可分:入输、出输、文件内挪动、和其他等。

    1.打开文件

    open 法方可以收接三个参数:文件名,模式,和缓冲区参数。只有第一个参数,文件名,是必须的;其它两个是 可选的。如果没有指定,文件以文本式方打开。

1 f=open('demo.txt','w')
2 print f.name    
3 print f.demo
4 
5 name性属;文件名
6 demo性属;文件以何种模式被打开    

2.闭关文件

    打开文件耗消系统资源, 并且依赖于文件模式, 其它程序或许不能问访它们。这就是一旦操纵终了就该闭关文件的主要在所。

1 f.close()
2 f.closed    #出输True,表现文件闭关状态
3 
4 #如果文件经已闭关,则可操纵打开文件的法方都不能用,
5 f.seek()  
6 f.tell()
7 f.read()
8 f.close()

 

    二、懂得读取文件
例如 我们来读取这个文件 all.py

 1 '''
 2 Created on 2013-3-7
 3 
 4 @author: Administrator
 5 '''
 6 def info(object, spacing=10, collapse=1):   
 7     """Print methods and doc strings.
 8     
 9     Takes module, class, list, dictionary, or string."""
10     methodList = [method for method in dir(object) if callable(getattr(object, method))]
11     processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
12     print "\n".join(["%s %s" %
13                       (method.ljust(spacing),
14                        processFunc(str(getattr(object, method).__doc__)))
15                      for method in methodList])
16 
17 if __name__ == "__main__":                 
18     print info.__doc__

对上述文件操纵代码如下:

 1 #coding=utf-8
 2 '''
 3 Created on 2013-3-7
 4 
 5 @author: Administrator
 6 '''
 7 f=open("all.py","rb")   #open收接三个参数,文件名、模式、缓冲区参数
 8 print f.tell()          #打开文件的当前置位,因为我们还没有对该文件做任何事,故当前置位为0,表现文件的开始处
 9 f.seek(10,0)            #文件对象的seek法方,表现在打开文件中挪动到另一个置位
10 print f.tell()              
11 tagData=f.read(10)      #read 法方从打开文件中读取指定个数的字节,并且返回含有读取据数的字符串
12 print tagData
13 print f.tell()          #tell 法方确认了当前置位经已挪动了
14 -------------
15   出输如下: 
0
10
ed on 2013
20                    

懂得:这一系列操纵好像是我们首先打开记事本时,光标立马在记事本的左上角(0)处停顿,这就对应着一开始的open之后的tell()。如果我们想要挪动光标的置位,如从一开始挪动到10个字符,我们可以用seek(10,0)表现,然后在tell(),发明光标经已定位到10了,然后从第10处开始读取10个字符,我们可以用使read(10)

    三、写入文件:

    Python的open法方用来打开一个文件。第一个参数是文件的置位和文件名,第二个参数是读写模式。

    1.写:w (write)  | a (append)
2.读:r
3.二进制(binary ): 写:wb;读:rb 

 1 在文件中存储和恢复Python对象
 2 用使Python的pickle块模,可以将Python对象直接存储在文件中,并且可以再当前要需的时候新重恢复到内容中。
 3 
 4 
 5 #coding=utf-8
 6 '''
 7 Created on 2013-3-7
 8 
 9 @author: Administrator
10 '''
11 file=open("pickle.txt","w")
12 import pickle
13 dict={"name":"BeginMan","age":"22"}
14 pickle.dump(dict, file)
15 file.close()
16 
17 test=open("pickle.txt","r")
18 print pickle.load(test)
19 test.close()

 四、I/O异常理处

    在对文件的操纵中以下这些可以发引IOError异常:

    1.文件不存在,用使open('....','r')打开读取一个不存在的文件发引异常。

    2.文件长度小于指定长度(如:n)时,用使seek(n),则发引异常

    3.文件损坏,盘磁损坏时read(),发引异常

 

    对此我们要需停止异常理处,如下:

 1 try:
 2     f=open('d.txt','r')
 3     try:
 4         f.seek(100,2)
 5         fshow=f.read(1000)
 6     finally:
 7         f.close()
 8 
 9     except IOError:
10     pass

第一步:打开文件时try理处
第二步:在第一步的基础上,文件操纵时try理处
第三步:一定要记取操纵成完后闭关文件,在finally中成完
最后一步:except IOError:...............对异常停止理处

文章结束给大家分享下程序员的一些笑话语录: 一个合格的程序员是不会写出 诸如 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去。

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值