Python文件操作IO open 读-取-写

简介:

PythonIO文件操作,读、取、写

 

 

本篇内容 文件的操作。

文件的练习

文件的操作

读取信息 、写入信息、文件有那么多的字,在什么地方写入、怎么 控制它。

文件对象 ===  读取 === 写入

 

生成文件对象

Fileobject = open(filename,mode) py3 py2 通用

文件对象 = 打开(文件名称,文件模式)

Fileobject = file(filename,mode)py2用的

 

文件对象 = 文件(文件名称,文件模式)

对文件进行操作。

图形界面打开文件过程,先找到文件 --双击打开。

程序打开文件工程,找到文件--确定是这个文件打开。

程序打开并不是一定能看见,通常是给程序员看或者用户。

通过程序 给某一个文件建立起某一个联系,在这 叫做生成文件对象。

可以理解为,你和文件建立起了联系,你要读取还是写入信息,还没确定。

文件进行操作之前第一步就是生成一个文件对象

两个方法。一个open 一个file

 open方法

fileobject = open(filename,mode)  py2,py3 都可用

文件方法 = 打开(文件名,方法)

file方法

fileobject = file(filename,mode) py 

文件方法 = 文件(文件名,方法)

要养成一个习惯,用两个都有的  的open。这样用2py也可以,3py也可以。减去后续不必要的麻烦。

 

示范 fileobject = open (filename,mode)

方法 =  确定文件在什么地方,(在什么路径,用读取还是写入方式打开。)

blob.png第一种情况进入我创建的文件夹选项,进入的的ipython。可直接打开文件

blob.png

返回的提示表达:方式是 r 打开 编码格式是CP936

此时获得并不是文件的内容,只是一个文件获得的一个句柄,或者理解为对象。

 

第二张情况 因为执行的文件环境是同一个目录下,只需要执行文件的名字。

如果不是一个文件目录,需要r文件 指定目录 写上完整路径

blob.png

 

读取文件

注意: 进行读取文件,可以后面方法写上'r' ,也可以不加 ,因为程序默认的就是为'r'的参数

基本文件操作过程

Read 语法

blob.png

选择字节数的操作

blob.png

read列子

blob.png

讲解含义

先生成一个对象。然后通过对象的方法。《某对象 = 方法》

选择是对文件进行读取信息,还是写入信息。《f.read() = 对象 ,阅读》,读到信息

操作完毕后对象 文件关闭 ,主要是为了释放内存。《对象.close()》

 

文件操作方法 和对象

blob.png

可以组合使用,比如  r+ 就有读取的作用、rb读取一个二进制文件。

创建文件生成句柄

 

生成文件对象

blob.png

创建文件句柄,生成文件对象的时候,是读是写还是追加去写。

 

基本上功能如下图,唯一的区别还是有一点的,先了解下怎么样读取和写入,

然后在看它们的区别

blob.png

 

 

介绍 readline

之前用的read,它是读取全部的内容,

但是有的时候,内容有很多行,每一次只想读取一行,这个时候就该用到readine,逐行读取,也可以指定字节

blob.png

Readline列子

blob.png每次执行的话会读取一行。如果为空的话,会显示  \n

 

blob.png

每次执行readline命令内容就会读取下一行,其实这个时候 指针就在起作用了,每次执行一次,指针调到下一行第一个字符。这就是readline过程

blob.png选择一次读多少字节,这里为一次5字节 

没有就显示\n

 

freadlines列子

blob.png

readlines

可以直接读取多行,然后返回一个列表。

形成一个列表。每一个元素就是一行,直接通过列表方式 获取第几行数据。

blob.png

 

小补充

blob.png 这个案例是不让你产生错觉,用 read 读取后 指针会一直往下扫描。一直读取全部,。 当指针到最后,你还想往下读的话,是读不出来数据的。

      要想在看上面数据,可以用一个变量做一个赋值,保存起来。什么时候想看文件 信息,只要显示 s变量值 就可以了。

最基础的方法。其它方法也有,后面补充。

 

变量赋值案例

 f 调用方法 保存到

变量c中。

blob.png以上介绍了IO文件在读的时候,指针的作用

 

知道了怎么读,

下面要看下怎么写入数据

Write语法

blob.png

Write例子

blob.png

上图解有、 w效果为写入和重建。

表达含义:

1. w 写入权限 写入,此时新建一个为xq5txt文件。

2. write方法写入,内容。一共为14个字节

3.可以明确看出此时创建的文件只有写,没有读的权限

4.f变量用 r 读的方式

5.用读的权限 完美读取 新建的xq5.txt里面的内容;       

 

Writeines语法

blob.png

Wwritelines例子:

blob.png

表达含义:

1.用写的方式,w打开文件

2.writlines 列表写入法

3.释放文件

4.读取文件

5.读取得到 写入的数据;

列表数据变成一行的数据

 

 

文件 对象 组合使用

注意下 rw 不能 组合使用 

blob.png

所以w只可以写入,如果想 有更新作用就用一个加号。

r w a三个  组合的时候,只能用到和a的 组合!

 

w +

可以组合使用,

但是 w 的效果是每次用时,就会重建数据,

1.用w 写入 + 更新 功能 就会有写入效果

2.之前这个文件里面为时间信息,可现在碰到w了,就会重新创建一个文件,是个新的文件,所以里面什么都没有。

3.更新写入内容  =.=

4.读取数据,现在是读不到数据的,因为更新写入数据时也是指针控制。写完一个指针移动一下,等你写完之后指针就到了结尾处 ,所以读取数据时,是读不到前面的。

除非把指针移动到开口去。

blob.png

 

a

含义 写入,在文件末尾追加新的内容,文件不存在,创建之

下面看下  a的效果跟 w 做一下对比。

blob.png

表达含义:

1.用a的方法 操作打开文件

2.进行写入的操作,a是可以写入的。

3.查看文件是没有权限的

4.释放文件控制

5。用读的方式查看了 a写入的有没有生效;

6.追加信息成功,在文件末尾追加了abc

w是直接写入 重建文件

a是在文件末尾追加内容。如果没有文件就新建一个。

 

看下a+和 r+ 的区别

blob.png
表达含义:

a+

1. xq5.txt文件进行 a末尾更新权限 +获得读的权限

2.读取的是为空的,因为指针现在在文件结尾。没有消息

3.释放文件

r+

4.进行读取更新。可读可写。

5.写入内容 hello

6.因为写入后文件为文件末尾,查看也为空,就释放文件用读的方式。

7.的方式对 xq5.txt文件进行操作。

8.打开感觉出现了替换的效果,用r的话,因为r的权限是读,会从文件的开头读取,+是更新,可以写入。产生了一个替换的效果。

 

 

到这里呢,对着三个模式的基本概念就明确了。

至于bU,如果要进行读取 二进制的图片 MP3这类文件或者一个程序,可以 进行 rb 进行读取。

但是读取出来的信息不是人类能搞懂的一个信息。

现在已经基本上讲解了怎么读 怎么写。

读有read readlinereadlines

写有writewritelines

了解知识点,了解IO文件的 读取 创建 写入方法。

 

补充更新1.9

介绍几个新功能

提交更新、偏移量、

FilcObject.flush()

提交更新案例

blob.png

表达含义

1.先查看文件,

2.内容如下

3.释放内存解除文件占用

4. r+  读取更新方式 赋值

5.写入新的内容。

 

blob.png

写入命令 执行后 ,文件不会立即生效,

这个时候运用 .flush(),及时更新,文件重新打开立即生效。

如果不提交更新,当你用.close之后,把文件关掉,它会自动提交更新。

blob.png

 

偏移量

FileObkect.seek (偏移量,选项)

文件 对象.查找

偏移  代表你要移动几位,,选项为  位置选择字符位置0

blob.png 

 

.seek例子

blob.png

文件已经读取过,选择读取,在读是读不到数据的。

因为指针,移动到了文件末尾,所以读取后面内容为空。这个时候就运用到我们的方法了。

 

 

偏移量为0,选项为0,指针移动到文章开头。

指针 从头读取得到内容。

blob.png

 

偏移量为,选项为0,指针从头移动。移动一位。

读取得到指针移动一位后的下面内容。

blob.png

 

除了从开头开始移动

还有两种移动方式,

一种是表示从当前,指针所指向的位置,先后移动,选项为1

如果从文件的末尾像前移动的话,选项为2.

 

注意事项

PY3

这里是用r的方式打开的

注意纯文本的文件,不允许从当前位置,从文件末尾,先前 或者先后移动。

区别点  py3中要用 rb  二进制的方式去打开它,py2里可以直接用  r 读取的方式打开 

blob.png

 

选项为 1  2 展示

选项1展示

blob.png

选择为1的显示

1,用rb读取方式。

2.b 代表用 二进制的方式读取的,读取全部内容

3.从当前位置,读取,当前位置为末尾,向前读取4

4.得到内容 48hh

 

选项为2的显示。

blob.png

选项为 2 的显示,

1. rb 读取二进制的方式,

2. b  代表用二进制方式读取的 ,读取全部内容

3.偏移量为-2,代表向前移动,选项代表从文件末尾向前移动偏移量。

4.向前移动两位得到后两位结果 hh






1
2018年1月6号 王宇林

 

本文转自 新网学会51CTO博客,原文链接:http://blog.51cto.com/xwxhvip/2058006 ,如需转载请自行联系原作者

相关文章
|
7天前
|
机器学习/深度学习 API Python
Python 高级编程与实战:深入理解网络编程与异步IO
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发和 API 设计。本文将深入探讨 Python 在网络编程和异步IO中的应用,并通过实战项目帮助你掌握这些技术。
|
25天前
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
75 34
|
1月前
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
2月前
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
61 20
|
2月前
|
存储 数据采集 数据处理
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
103 8
|
2月前
|
存储 JSON 对象存储
如何使用 Python 进行文件读写操作?
大家好,我是V哥。本文介绍Python中文件读写操作的方法,包括文件读取、写入、追加、二进制模式、JSON、CSV和Pandas模块的使用,以及对象序列化与反序列化。通过这些方法,你可以根据不同的文件类型和需求,灵活选择合适的方式进行操作。希望对正在学习Python的小伙伴们有所帮助。欢迎关注威哥爱编程,全栈路上我们并肩前行。
|
2月前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
3月前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
88 7
|
4月前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
4月前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
198 2

热门文章

最新文章

推荐镜像

更多