python文件对象提供了3个读方法、分别是-python3 IO编程:文件读写
打开文件对象
在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:
file object = open(file_name [, access_mode][, buffering])
file_name:file_name参数是一个字符串值,指定要访问的文件的名称。
access_mode:access_mode确定文件打开的模式,即读取,写入,追加等。
buffering:如果buffering值设置为0,则不会发生缓冲。如果缓冲值buffering为1,则在访问文件时执行行缓冲。如果将缓冲值buffering指定为大于1的整数,则使用指定的缓冲区大小执行缓冲操作。如果为负,则缓冲区大小为系统默认值(默认行为)。
不同模式打开文件的完全列表:
模式描述
r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w
打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+
打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
模式如下图所示:
操作文件对象的方法
假设已经创建了一个称为 f 的文件对象,新建一个test.txt
f.read()
为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。
size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。
f = open("./test.txt","r")
str=f.read()print(str)
输出:
hello,world!
thisis a test file.
f.readline()
f.readline() 会从文件中读取单独的一行。换行符为 ' '。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
f = open("./test.txt","r")
str=f.readline()print(str)
str=f.readline()print(str)
输出:
hello,world!
thisis a test file.
f.readlines()
f.readlines() 将返回该文件中包含的所有行。
f = open("./test.txt","r")
str=f.readlines()print(str)
输出:
['hello,world! ', 'this is a test file. ']
f.tell()
f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。
f.seek()
如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。
from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:
seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
seek(x,1) : 表示从当前位置往后移动x个字符
seek(-x,2):表示从文件的结尾往前移动x个字符
from_what 值为默认为0,即文件开头。
f.write()
f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。
f.close()
在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位。
当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。
当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。
with 关键字
当处理一个文件对象时, 使用 with 关键字是非常好的方式。在结束后, 它会帮你正确的关闭文件。
with open('/tmp/foo.txt', 'r') as f:
read_data= f.read()
python文件对象提供了3个读方法、分别是-python3 IO编程:文件读写相关推荐
- python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...
本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...
- python文件对象提供了3个读方法、分别是-python3基础之文件对象操作
1.向文本文件中写入内容 s = 'Hello world 文本文件的读取方法 文本文件的写入方法 ' # 需要写入文件的字符串 print('显示需要写入的内容: {0:s}'.format(s)) ...
- Python IO编程——文件读写
1.1 文件读写 1.1.1 读文件 >>> f = open('/root/python/hello.py','r') #标识符r表示读 >>> f ...
- python学习——IO编程——文件读写
python--IO编程--文件读写 IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动.Input Stream就是数据从外面(磁盘.网络 ...
- python写对象提供的方法_下面哪些是python读对象提供的“写”方法?
[简答题]土的物理性指标中六个换算指标是哪些? [判断题]定义毛坯中,常用的形状有多边体.长方体.圆柱体. [单选题]_______ difficult questions they are! I c ...
- Python学习(九)IO 编程 —— 文件夹及文件操作
Python 文件夹及文件操作 我们经常会与文件和目录打交道,对于这些操作,python可以使用 os 及 shutill 模块,其中包含了很多操作文件和目录的函数. os 可以执行简单的文件夹及文件 ...
- 文件损坏怎么修复?3种方法帮您恢复损坏的文件
案例:文件损坏还可以修复吗?文件损坏怎么修复? "救命!!!我的视频文件系统损坏,且没有办法读取.试了很多方法,但是都没有成功.想问各位大神,还有什么好用的方法吗?" 文件损坏是我 ...
- command对象提供的3个execute方法是_并发面试题:java中有几种方法可以实现一个线程?...
创建并启动线程的6种方式 继承Thread类创建线程 实现Runnable接口创建线程 使用Callable和FutureTask创建线程 使用线程池,例如用Executor框架 Spring实现多线 ...
- command对象提供的3个execute方法是_Python:3分钟看懂,基于 Psycopg2 的 PostgreSQL 操作指南!
本Python PostgreSQL教程演示了如何使用PostgreSQL数据库服务器开发Python数据库应用程序.在Python中,我们有用于连接和使用PostgreSQL的serval模块.以下 ...
最新文章
- php ile_get_contents无法请求https连接的解决方法
- gradle仓库配置
- DSP F28335的SCI模块
- FFmpeg数据结构:AVPacket解析
- 基本数据类型包装类的使用与转换
- 【C#】[窗体]渐变窗口背景
- C++ 自旋锁简单实现
- Win10 系统字体美化
- MediaType和文件类型对应关系
- USB 协议Audio应用
- 质量管理:PDCA循环
- 问卷调查报告html,问卷调查报告格式优秀范文
- char在计算机中是什么作用,C语言中char的用法
- Rails Controller中的concerns测试编写
- XUL 用户界面语言介绍
- Phun一个有意思的程序
- BZOJ 5293 求和(LCA)
- Mysql数据库查询去除重复_mysql数据库如何去重复数据
- C语言关键字浅析-return
- 想要不被裁,看一看 13 年华为老兵的宝贵经验