python文件操作

文件操作

冯诺依曼体系架构

捕

CPU由运算器和控制器组成

运算器:完成各种算数运算,逻辑运算,数据传输等数据加工处理

控制器:控制程序的执行

存储器:用于记忆程序和数据,例如内存

输入设备:将数据或者程序输入到计算机中,例如键盘,鼠标

输出设备:将数据或程序的处理结果展示给用户,例如显示器,打印机等

IO操作:指的是文件IO,如果指的是网络IO,都会直接说网络IO

Open–打开   read—读取  write—写入    close—关闭

Readline—行读取  readlines—多行读取   seek—文件指针操作  tell—指针位置

Open(file,mode=‘r’,buffering=-1,encode=none,errors=None,newline=None,closed=True,opener=None)

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

文件操作中,最常用的操作就是读和写,文件访问的模式有两种:文本模式和二进制模式,不同模式下,操作函数不尽相同,表现的结果也不一样

Mode模式

c'x捕获

r :只读打开文件,如果使用write方法,会抛异常,如果文件不存在,会抛异常

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

如果文件不存在,则直接创建文件,如果文件存在,则直接清空文件内容

X:文件不存在,创建文件,并只写方式打开,文件存在,抛出异常

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

r是只读,wxa都是只写

wxa都可以产生新文件,w不管文件存在与否,都会生成全新内容的文件,a不管文件是否存在,都能在打开的文件尾部追加,x必须要求文件事先不存在,自己造一个新文件

+为r,w,a,x提供缺失的读写功能,但是,获取文件对象依旧按照r,w,a,x自己的特征,+不能单独使用,可以认为它是为前面的模式字符做增强功能

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

Mode=r,指针起始在0

Mode=a,指针起始在EOF

tell():显示指针当前位置

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

文本模式下

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

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

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

二进制模式下

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

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

Whence2表示从EOF开始,offset可正可负

二进制模式支持任意起点的偏移,从头,从尾,从中间位置开始,向后seek可以越界,但是向前seek的时候,不能超界,否则抛异常

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

Flush()将缓冲区数据写入磁盘

Close()关闭前会调用flush()

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

None表示使用缺省编码,依赖操作系统,windows下缺省GBK(0xB0A1)

Linux下缺省UTF-8(0xE5958A)

上下文管理

  • 使用with…as关键字
  • 上下文管理的语句块并不会开启新的作用域
  • With语句块执行完的时候,会自动关闭文件对象
  • v捕获
  • 捕获

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96932

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班