文件IO常用操作:

open打开read读取

write写入

close关闭

readline行读取

readlines多行读取

seek文件指针操作

tell指针位置

打开操作:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

打开一个文件,返回一个文件对象(流对象)和文件描述符。打开文件失败,则返回异常。

标红的字,为最常用到的四个。

基本使用:

open的参数:

file: 认识开可者要创建的文件名。如果不指定路径,默认是当前路径。

mode模式:

描述字符意义r缺省的,表示只读打开

w只写打开

x创建并写入一个新文件

a写入打开,如果文件存在,则追加

b二进制模式

t缺省的,文本模式

+读写打开一个文件。给原来只读、只写方式打开提供缺失的读或写能力

open默认是只读模式r打开已经存在的文件。

r

只读打开文件,如果使用write方法,会抛异常。

如果文件不存在,抛出FileNotFoundError异常。

w

表示只写方式打开,如果读取则抛出异常;

如果文件不存在,则直接创建文件;

如果文件存在,则清空文件内容;

x

文件不存在,创建文件,并只写方式打开;

文件存在,抛出FileExistsError异常;

a

文件存在,只写打开,追加内容;

文件不存在,则创建后,只写打开,追加内容;

r是只读,wxa都是只写

wxa都可以产生新文件,w不管文件存在与否,都会生成全新内容的文件;a不管文件是否存在,都能在打开的文件

尾部追加;x必须要求文件事先不存在,自己造一个新文件;

文本模式t

字符流,将文件的字节按照某种字符编码理解,按照字符操作。open的默认mode就是rt;

二进制模式b

字节流,将文件就按照字节理解,与字符编码无关。二进制模式操作时,字节操作使用bytes类型.

+

为r、w、a、x提供缺失的读写功能,但是,获取文件对象依旧按照r、w、a、x自己的特征。

+不能单独使用,可以认为它是为前面的模式字符做增强功能的。

文件指针

文件指针,指向当前字节位置

mode=r,指针起始在0

mode=a, 指针起始在EOF

tell()显示指针当前位置

seek(offset[,whence]),移动文件指针位置,offset偏移多少字节。whence从哪里开始。

文本模式下:

whence 0缺省值,表示从头开始,offset只能正整数。

whence 1表示从当前位置,offset只接受0

whence 2表示从EOF开始,offset只接受0

二进制模式下:

whence 0缺省值,表示从头开始,offset只能正整数

whence 1表示从当前位置,offset可正可负

whence 2表示从EOF开始,offset可正可负

二进制模式支持任意起点的偏移,从头,从尾,从中间位置开始。

向后seek可以超界,但是向前seek的时候,不能超界,否则抛出异常。

buffering: 缓冲区

-1表示使用缺省大小的buffer。如果是二进制模式,使用io.DEFAULT_BUFFER_SIZE值,默认是4096或8192。

如果是文本模式,如果是终端设备,是行缓存方式,如果不是,则使用二进制模式的策略。

0 只在二进制模式使用,表示关buffer

1 只在文本模式使用,表示使用行缓冲。意思是见到换行符就flush

大于1用于指定buffer的大小

buffer缓冲区

缓冲区一个内存空间,一般来说是一个FIFO队列,到缓冲区满了或者达到阈值,数据才会flush到磁盘。

flush() 将缓冲区数据写入磁盘(其实是磁盘的缓冲区);

close()关闭前会调用flush()import io

print(io.DEFAULT_BUFFER_SIZE)

encoding: 编码,仅文本模式使用

None 表示使用缺省编码,依赖操作系统。

windows下缺省GBK(0xB0A1),Linux下缺省UTF-8(0xE5958A)

其它参数:

errors: 什么样的编码错误将被捕获;

None和strict表示有编码错误将抛出ValueError异常;ignore表示忽略;

newline: 文本模式中,将行的转换。可以为None, " \r \n \r\n

读时,None表示\r \n \r\n都被转换为\n;

"表示不会自动转换通用换行符;

其它合法字符表示换行符就是指定字符,就会按照指定字符分行;

写时,none表示\n都会被替换为系统缺省分隔符os.linesep;

\n或"表示\n不替换;

其它合法字符表示\n会被替换为指定的字符;

closed: 关闭文件描述符,True表示关闭它,False会在文件关闭后保持这个描述符;

fileobj.fileno()查看.

python io操作有什么_Python文件IO操作相关推荐

  1. python文件io是啥意思_Python文件IO(普通文件读写)

    ## 打开一个文件 - fileobj = open(filename, mode) 其中: fileobj是open()返回的文件对象 filename是该文件的字符串名 mode是指明文件类型和操 ...

  2. python文件输入符_python文件IO与file操作

    1 标准输入输出IO - (1) 打印到屏幕 print() print(self, *args, sep=' ', end='n', file=None): 把传递的表达式 转换成一个 字符串表达式 ...

  3. python文件打开赋值为空_python文件的操作

    f = open('student_msg', encoding='utf-8', mode='a+') # 打开一个文件,赋值给f print(type(f), f) # f文件句柄是属于一个类叫, ...

  4. python 流写入文件_python文件流操作

    博主在学习python时对文件进行操作时经常踩一下坑.所以专门梳理了一下.有问题麻烦指出哈. python对于文件的操作我们一般是用open().我们根据python的源码可以看出.我们必须要传的参是 ...

  5. python文件读写r+_python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)

    一.常用 'r':只读.该文件必须已存在. 'r+':可读可写.该文件必须已存在,写为追加在文件内容末尾. 'rb':表示以二进制方式读取文件.该文件必须已存在. 'w':只写.打开即默认创建一个新文 ...

  6. python遍历文件对象_Python文件常见操作实例分析【读写、遍历】

    本文实例讲述了Python文件常见操作.分享给大家供大家参考,具体如下: 1.文件是什么? 文件是存储在外部介质上的数据或信息集合,程序中源程序.数据中保存的数据.图像中的像素数据等等: 文件是有序的 ...

  7. python文件操作的方法_Python文件常用操作方法

    Python文件常用操作方法 一.对File对象常用操作方法: file= open(file, mode='r', buffering=-1, encoding=None, errors=None, ...

  8. python文件写入_python 文件读写操作

    读文件 打开一个文件用open()方法(open()返回一个文件对象,它是可迭代的): >>> f = open('test.txt', 'r') r表示是文本文件,rb是二进制文件 ...

  9. python文件操作的方法_python文件操作的方法介绍

    文件操作 1.open()函数 open()函数主要用于文件处理,一般分为下面3个过程:1.打开文件 2.操作文件 3.关闭文件 常见的格式示例:f = open('note.txt','r') f. ...

最新文章

  1. Java中的对象和包
  2. [Android] Android MVP 架构下 最简单的 代码实现
  3. Linux 服务器安装discuz 7.2论坛
  4. MySql中怎样使用case-when实现判断查询结果返回
  5. 少儿编程150讲轻松学Scratch(十二)-用Scratch制作石头剪子布游戏
  6. 2021年浙江省高考成绩查询时间,2021年浙江高考成绩什么时候出来 时间
  7. spring框架中Bean的基本属性及调用外部properties等配置文件的方法介绍
  8. 02_入门程序(非注解方式,了解)
  9. PAT 1087 有多少不同的值(20 分)- 乙级
  10. Java编程:排序算法——归并排序
  11. 三 转码需求(智源GM813X多国语言OSD开发)
  12. 尼康数码相机照片数据恢复怎么办
  13. Photoshop - RGB 转 CMYK 如何不失真?
  14. OpenLayers 5 使用turf.js渲染克里金插值计算的等值面
  15. 淘宝客小程序制作(1)-淘宝的相关的准备
  16. 计算机毕业设计——基于Spring Boot框架的在线导游预约系统
  17. MyBatis源码的学习(9)---映射器mappers的的XML解析
  18. C语言学习笔记(十五)
  19. 在switch 里面跳出while 循环
  20. scrapy某家租房信息爬取

热门文章

  1. 服务器控件的优点和缺点_什么是无服务器架构? 它的优点和缺点是什么?
  2. javascript要点_JavaScript要点:为什么您应该知道引擎如何工作
  3. 不要束缚:为什么我们会错过GitHub条纹
  4. 统计学三大分布(卡方、t、F)即相应概率密度图的R语言实现
  5. Pandas数据类型及操作
  6. Elipse 、Idea配置 Java-Code-Formatter
  7. Python安装第三方库的3种方法
  8. 在DataTable和DataView中查找指定记录
  9. ExtJs2.0学习系列(15)--extjs换肤
  10. 网页边框和网页文字阴影