Python内置了读写文件的函数,用file对象表示文件描述符。以下是file对象的常用方法:
1.open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None),打开一个文件创建file对象。参数:
name:文件路径。
mode:打开文件的模式,默认为rt即只读文本,下表是所有可取值:
字符 | 描述 |
---|---|
'r' | 只读(默认) |
'w' | 只写 |
'x' | 独占方式创建, 如果文件已存在则失败 |
'a' | 追加,如果文件存在则追加,不存在则创建 |
'b' | 二进制模式 |
't' | 文本模式(默认) |
'+' | 打开一个文件用于更新,即读写 |
buffering:缓冲区,等于0不会有缓存。等于1访问文件时会缓存行。如果设为大于1的整数,表示缓冲区的大小。如果取负值,缓冲区的大小则为系统默认。
encoding:文件字符编码,读取文本时用。
其他参数少用暂不介绍。
fileObj=open('/usr/a.txt','r+',encoding='gbk')
print(fileObj.name)
以上代码为以gbk编码读写一个文本文件,打印出文件名
2.file.close(),关闭文件对象。文件使用过后是必须要关闭的,否则你懂的。I/O流的读写可能IOError异常发生,为了保证关闭操作必须执行,通用会try ... finally实现:
try:
f = open('/path/file', 'r')print(f.read())
finally:
if f:
f.close()
为了避免这样繁琐的操作,Python引入了with语句来自动帮我们调用close()方法
with open('/path/file', 'r') as f:
print(f.read())
3.file.read(size),从文件读取指定的字节数,如果未给定或为负则读取所有,文本模式返回的是文本,二进制模式返回二进制对象。
4.file.readline(),读取一行数据,以'\n'换行符为一行。我们也可以按行来迭代文件对象:
for line in f:
print(line, end='')
5.file.readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理。
如果碰到结束符 EOF 则返回空字符串。也可用list(file)。
6.file.write(string|bytearray) ,方法用于向文件中写入指定字符串或二进制。注意:在文件关闭前或缓冲区刷新前,内容存储在缓冲区中并示最终写入文件。要写入其他数据类型需要转换到字符串或二进制才能写入。
7.file.tell(),返回文件指针当前位置。
8.file.seek(offset[, whence]),移动文件读取指针到指定位置。offset开始的偏移量,也就是代表需要移动偏移的字节数。whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
9.file.flush(),刷新文件内部缓冲,内部缓冲区的数据立刻写入文件。
好了,前面运维系列文章把python的基础语法,常用模块和文件操作都介绍过了,对于运维工作来说基本上已经可以干活了,后面的文章开始实践脚本。