python12文件操作

来源:互联网 发布:js apply方法详解 编辑:程序博客网 时间:2024/05/29 19:27

1.文件读写
文件操作文件读写
• Python
内置了读写文件的函数,用法和 C 是兼容的。
操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(又称文件描述符),然后,通过操作系统提供的接口从这个文件对象操作;
文件读写的过程:
1.
打开文件
2.
向文件中写入内容;
3.
关闭文件文件读写
f = open('/root/hello')
#
如果文件不存在, open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在;
f.read()
#
如果文件打开成功,接下来,调用 read() 方法可以一次读取文件的全部内容;
f.close()
#
文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源。
思考:
如果文件很小, read()一次性读取最方便;
如果不能确定文件大小,反复调用read(size)
比较保险;如果是配置文件,调用 readlines()
二进制文件
要读取二进制文件,比如图片、视频等等, 'rb' 模式打开文件即可
>>> f = open('/root/test.jpg', 'rb')
>>> f.read()
'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' #
十六进制表示的字节文件读写
字符编码
要读取非 ASCII编码的文本文件,就必须以二进制模式打开,再解码,Python还提供了一个codecs模块帮我们在读文件时自动转换编码,直接读出unicode
import codecs
with codecs.open('/Users/michael/gbk.txt', 'r', 'gbk') as f:
f.read()
2.open
函数的模式
# r:
可以读取文件内容,不可以写入,如果文件不存在则报错
# r+:
可读写,依次覆盖源文件内容,如果文件不存在则报错
# w
:可以写入文件内容,不可以读取,如果文件不存在则创建,并覆盖源文件内容
# w+
:可读写,打开文件时直接删除源文件内容,如果文件不存在则创建
# a
:写入,文件末尾追加,文件不存在则创建
# a+:
读写,文件追加,文件不存在则创建
编写一个文件,将hello文件中所有的hello替换成‘westos’,并另存为一文件hello.bak.
f1 = open('hello','r')
f2 = open('hello.bak','a+')

str1 = f1.read()
str2 = str1.replace('hello','westos')
f2.write(str2)
f1.close()
f2.close()

在使用以上 mode打开文件的时候,如果增加了b模式,表示以二进制方式打开
3.
文件的其它操作
f.flush()
函数,将缓冲区的内容写入到硬盘中
f.seek(offset[,whence]),offset
表示移动多少字节, whence 1的时候表
示相对于当前位置移动的; 2 的时候从文件的末尾往后移动,但不一定所有
的平台都支持;默认为 0 表示从文件开头往后移动
f.tell()
函数,返回当前文件指针的偏移量
fileno()
函数,返回当前的文件描述符,一个数字
isatty()
函数,当前打开的文件是否是一个终端设备
closed
属性,当前文件是否关闭,|True,False, f.closed
file
对象是一个迭代器:
next()
方法 ,一行一行的读 ,每次读取一行
4.with
语法
一般情况打开一个文件,经过操作之后,都要显式的执行xx.close()将文件关
.with用于需要打开、关闭成对的操作,可以自动关闭打开对象 .
with expression as obj:#
将打开的对象赋值给 obj
expression
#obj
的作用域只在 with语句中

 

原创粉丝点击