文件读写
- python内置了读写文件的函数,用法和C是兼容的。
- 操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象,然后通过操作系统提供的接口从这个文件对象操作;
- f = open('/root/hello') #如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在;
- f.read()#如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容;
- f.close()#文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源;
- 如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险,如果是配置文件,调用readlines()
- 二进制文件
要读取二进制文件,比如图片,视频等等,用'rb'模式打开文件即可
f = open('/root/test.jpg','rb')
f.read( )
open函数的模式
- r以读的方式打开,定位到文件开头,默认的mode
- r+以读写的方式打开,定位文件开头,可以写入内容到文件
- w以写的方式打开,打开文件的时候会清空文件的内容,并且不能读
- w+以读写的方式打开,定位到文件开头,并且打开文件的时候会清空文件的内容
- a以写的方式打开,定位到文件的末尾,是一个追加的操作,但不可读
- a+以读写的方式打开,定位到文件末尾,追加的方式、
文件的其他操作
f.flush()函数,将缓冲区的内容写入到硬盘中
f.seek(offset,[whence]),offset表示移动多少字节,whence为1的时候表示相对于当前位置移动的;当为2的时候从文件末尾往后移动
f.tell()函数,返回当前文件指针的偏移量
fileno()函数,返回当前的文件描述符,一个数字
isatty()函数,当前打开的文件是否是一个终端设备
closed属性,当前文件是否关闭,True,False,f.close
file对象是一个迭代器:
next()方法,一行一行的读,每次读一行
with语法
一般情况打开一个文件,经过操作之后,都要显示的执行xx.close()将文件关闭, .with用于需要打开,关闭成对的操作,可以自动关闭打开对象
with expression as obj :#将打开的对象赋值给 obj
expression
#obj的作用域只在with语句中