文件操作
1 文件操作
1.1 模式
基本操作
r:只读
w:只写(没文件创建新文件,有文件先清空)
x:不存在就创建,存在就报错,只写
a:追加,只写
二进制(传输使用)
rb:
wb:
xb:
ab:
+模式
r+:读写
读:从0开始读
写:
1.如果先读,最后追加
2.主动seek,写从当前指针开始写
3.不读先写的时候,会覆盖写
w+:读写
x+:读写
a+:读写
读:从文件最后位置开始读
写:最后追加,主动seek也是最后追加
1.2 指针
seek 跳转到某个位置
概述
seek() 方法用于移动文件读取指针到指定位置。
语法
seek() 方法语法如下:
fileObject.seek(offset[, whence])
参数
-
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数
-
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
实例
以下实例演示了 readline() 方法的使用:
文件 runoob.txt 的内容如下:
1:www.runoob.com
2:www.runoob.com
3:www.runoob.com
4:www.runoob.com
5:www.runoob.com
循环读取文件的内容:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开文件
fo = open("runoob.txt", "rw+")
print "文件名为: ", fo.name
line = fo.readline()
print "读取的数据为: %s" % (line)
# 重新设置文件读取指针到开头
fo.seek(0, 0)
line = fo.readline()
print "读取的数据为: %s" % (line)
# 关闭文件
fo.close()
以上实例输出结果为:
文件名为: runoob.txt
读取的数据为: 1:www.runoob.com
读取的数据为: 1:www.runoob.com
tell:看指针位置
1.3 文件操作里的方法
trancate(x) 截取x个字符
read()
read(1):无b,读一个字符
read(1):有b,读一个字节
write()
str:无b,写字符串
bytes:有b,写字节
readline () 只读取一行
readlines() 把文件读的每一行都添加到一个列表中(特别占内存)
flush() 强行输入硬盘
seek() 调整指针