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)

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

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

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

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

 

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

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

 

读取文件

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

基本文件操作过程

Read 语法

选择字节数的操作

read列子

讲解含义

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

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

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

 

文件操作方法 和对象

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

创建文件生成句柄

生成文件对象

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

 

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

然后在看它们的区别

 

 

介绍 readline

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

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

Readline列子

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

 

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

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

没有就显示\n

 

freadlines列子

readlines

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

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

 

小补充

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

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

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

 

变量赋值案例

f 调用方法 保存到

变量c中。

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

 

知道了怎么读,

下面要看下怎么写入数据

Write语法

Write例子

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

表达含义:

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

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

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

4.f变量用 r 读的方式

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

 

Writeines语法

Wwritelines例子:

表达含义:

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

2.用writlines 列表写入法

3.释放文件

4.读取文件

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

列表数据变成一行的数据

 

 

文件 对象 组合使用

注意下 rw 不能 组合使用

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

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

 

w +

可以组合使用,

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

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

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

3.更新写入内容  =.=

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

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

a

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

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

表达含义:

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

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

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

4.释放文件控制

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

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

w是直接写入 重建文件

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

看下a+和 r+ 的区别


表达含义:

a+

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

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

3.释放文件

r+

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

5.写入内容 hello

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

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

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

 

 

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

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

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

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

读有read readlinereadlines

写有writewritelines

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

 

补充更新1.9

介绍几个新功能

提交更新、偏移量、

FilcObject.flush()

提交更新案例

表达含义

1.先查看文件,

2.内容如下

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

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

5.写入新的内容。

 

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

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

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

 

偏移量

FileObkect.seek (偏移量,选项)

文件 对象.查找

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

 

 

.seek例子

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

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

 

 

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

指针 从头读取得到内容。

 

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

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

 

除了从开头开始移动

还有两种移动方式,

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

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

 

注意事项

PY3

这里是用r的方式打开的

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

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

 

选项为 1 2 展示

选项1展示

选择为1的显示

1,用rb读取方式。

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

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

4.得到内容 48hh

 

选项为2的显示。

选项为 2 的显示,

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

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

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

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




2018年1月6号 王宇林

转载于:https://blog.51cto.com/xwxhvip/2058006

Python文件操作IO open 读-取-写相关推荐

  1. Python(10)文件操作(IO 技术)、OS模块、递归

    文章目录 文件操作(IO 技术) 文本文件和二进制文件 文件操作相关模块概述 创建文件对象 open() 基本的文件写入操作 常用编码介绍 ASCII ISO8859-1 GB2312 GBK GB1 ...

  2. Python零基础速成班-第8讲-Python文件操作File IO、高级文件处理模块shutil、CSV、JSON、多线程基础

    Python零基础速成班-第8讲-Python文件操作File I&O.高级文件处理模块shutil.CSV.JSON.多线程基础 学习目标 文件操作File I/O 高级文件处理模块shut ...

  3. Python文件操作-写文本文件

    本关任务:从键盘输入数据,保存到文本文件当中. 相关知识 为了完成本关任务,你需要掌握写文本文件的方法. 写文本文件 python文件对象提供了两个"写"方法: write() 和 ...

  4. 不是python文件操作的相关函数_从零开始学Python(七):文件存储I/O流和异常捕捉

    这两天在搞小程序开发,耽搁了一下更新的进度,今天补上.一个完整的前端程序肯定离不开数据存储和网络两个模块,今天我们就先来讲讲python中的一种常见数据存储:文件存储!~! 文件存储(I/O操作) 何 ...

  5. Python文件操作-文本文件、二进制文件、csv文件的读取写入、OS、shutil、CSV模块、常用字符编码

    Python文件操作 文本文件和二进制文件 文件操作相关模块 open()创建文件对象 文件对象的常用属性和方法 pickle 序列化 文本文件读取和写入 文本文件写入步骤 write()/write ...

  6. python关闭读写的所有的文件-Python文件操作:文件的打开关闭读取写入

    Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...

  7. python——文件操作File

    1.打开文件 open() Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 若使用open函 ...

  8. python 文件操作不被打断_python学习六文件操作和异常处理

    1.文件的定义和类型 什么是文件呢? 文件是数据的抽象和集合 文件是存储在辅助存储器上的数据序列 文件是存储的一种 文件有哪些类型呢? 本质上所有文件以二进制储存,不过又可以分为文本文件和二进制文件 ...

  9. python 文件操作 和 标准库

    python 文件操作 一. 文件作用 二. 文件读写操作 文件操作流程 1. 读取文件数据 ⑴ 打开文件 ⑵ 读取文件内容 ⑶关闭文件 2. 写入或追加写入数据 ⑴ 打开文件 ⑵ 写入文件内容 ⑶关 ...

最新文章

  1. 高速缓冲DNS相关配置详情
  2. numpy.argwhere 返回的为索引值的array
  3. 网络攻城狮怎么看待TCP/IP协议与UDP协议?
  4. python小白逆袭大佬_飞桨深造学院百度深造7天打卡第6期:python小白反攻大神的经验,深度,学习,日,第六期,Python,小白逆袭,结营,心得...
  5. python外星人入侵游戏代码大全-Python游戏:外星人入侵游戏编程完整版!内附代码...
  6. 极速pdf编辑器的水印如何去掉_如何修改PDF?有没有详细的PDF编辑器操作方法?...
  7. pygame只能编写游戏_游戏框架搭建
  8. 30个免费资源:涵盖机器学习、深度学习、NLP及自动驾驶
  9. HTTP请求常见错误大全
  10. 数据库基础 MySQL
  11. 宏基 Acer 4741G ubuntu10.10 GT 330M显卡驱动
  12. 在定语从句中which和that用法有什么区别
  13. 解压软件安装包,winrar
  14. python+django高速公路收费管理系统的设计
  15. 计算分辨率长宽比(等比例缩放)
  16. 有关腾讯云简单的域名解析笔记
  17. 计算机等级一级考试上机试题,计算机等级考试一级上机试题
  18. MATLAB调用python获得股票数据并构建交易策略
  19. Arduino单片机控制步进电机,关于步进电机的细分
  20. 变分自编码器原理详解

热门文章

  1. UA MATH564 概率论 计算至少有一个发生的概率:Boole不等式
  2. 一些关于mathematica的tips
  3. SuperMap iClient for Leaflet入门学习
  4. Windows 内核数据结构学习总结
  5. Vue.js 技术揭秘学习 (2) Vue 实例挂载的实现
  6. script学习,如何用linux监控你的同事?
  7. PHPExcel所遇到问题的知识点总结
  8. Gradle修改本地仓库的位置
  9. 用DzzOffice管理阿里云OSS
  10. VB6.0 怎样启用控件comdlg32.ocx