1,打开文件open()
打开文件有以下两种形式:
区别是第二中打开方式默认会关闭文件;第一种方式需要手动关闭文件
f=open(r'path')
with open(r'path') as f
2,打开模式mode
r:读取文件(默认不写就是读取文件)
w:写入文件
a+:追加文件
rb:二进制读取(比如读取图片)
wb:二进制写
f=open(r'path',mode)
3,读取文件
read():一次性全部读取
readline():一次读取一行
readlines():将文件放入列表,每行为一个列表元素
with open(r'path\a.txt') as f:
content=f.read()
print '全部内容:\n',content
with open(r'path\a.txt') as f:
line=f.readline()
print '第一行:',line
with open(r'path\a.txt') as f:
line=f.readlines()
print '行列表:',line
结果:
全部内容:
hello
word!
第一行: hello
行列表: ['hello\n', 'word!']
4,写入文件
with open(r'path\a.txt','w') as f:
f.write('I am writting')
f.flush#执行完write方法后,内容在缓存中不会立刻写入文件,flush方法将缓存中内容写入文件
结果:成功创建a.txt并写入“I am writting”。如果之前存在a.txt文件会被覆盖
如果不想被覆盖,可以改为“a+”追加形式
5,查看游标
with open(r'path\a.txt','r') as f:print '打开文件后游标默认位置:',f.tell()#tell()方法查看游标位置,默认在初始位置0
content=f.read(3)#读取三个字节
print '文档内容:',content
print '读取三个字节后游标位置:',f.tell()#游标移动到了3
f.seek(2,1)#移动游标位置,前面参数为移动步数,后面参数为位置:1为当前位置,0为文档开头,2为文档结尾
print '游标后移2位后当前位置:',f.tell()
f.seek(0,0)
print '从文档开始位置向后移动0位游标:',f.tell()
f.seek(2,2)
print '从文档结束位置向后移动2位游标:',f.tell()
结果:
打开文件后游标默认位置: 0
文档内容: 123
读取三个字节后游标位置: 3
游标后移2位后当前位置: 5
从文档开始位置向后移动0位游标: 0
从文档结束位置向后移动2位游标: 11