第十一章:文件操作
1.打开文件
用open函数,直接用就可以。
open(name[,mode[,buffering]])
调用open之后会返回一个文件对象,mode--模式,buffering--缓冲都是可以选择的。
>>f=open(r‘文件路径’)
2.文件模式:
‘r’ 读模式
‘w’ 写模式
‘a’ 追加模式
‘b’ 二进制模式(可以添加到其他模式中)
‘+’ 读/写模式(可以添加到其他模式中)
处理其他二进制文件时,要用’b’模式
3.缓冲:
如果参数是0(或者False),无缓冲,读写直接针对硬盘,如果是1,有缓冲,直接用内存代替硬盘。
读和写:
>>f=open(‘文件路径’,’w’)
>>f.write(‘hello’)
>>f.write(‘world’)
>>f.close()
>>f=open(‘文件路径’)
>>f.read(4)
输出:hell
>>f.read()
输出:oworld
首先读取了4之后,读取文件的指针就改变了,不再是从开始读。
注意在写操作完成后,要调用close()
4.读写行:
使用file.readline()读取一行,包括换行符,带参数的时候会读取这行的多少字节数。
使用file.readlines()可以读取整个文件的所有行,并作为列表返回。
5.上下文管理器
是一种支持__enter__和__exit__方法的对象,前者在进入with的语句时调用,返回值在as之后,后者带有三个参数,异常类型,异常对象,异常回溯。
6.基本的文件方法:
read(),readline(),readlines(),write()
Read():
>>f=open(‘文件路径’)
>>print(f.read())
Readline():
>>f=open(‘文件路径’)
>>for i in range(3):
>> print(f.readline())
会打印出前三行
Readlines():
>>import pprint
>>pprint.pprint(f.readlines())
Write():
>>f=open(‘文件路径’)
>>f.write(‘hello’)
Writelines():
>>f=open(‘文件路径’)
>>lines=f.readlines()
>>f.close()
>>f.open(‘文件路径’)
>>f=writelines(lines)
>>f.close()
7.对文件内容进行迭代
按字节处理:
>>f=open(‘文件路径’)
>>char=f.read(1)
>>while char:
>>print(char)
char=f.read(1)
>>f.close()
按行操作:
>>f=open(‘文件路径’)
>>while True:
>>line=f.readline()
if not line:break
print(line)
>>f.close()
读取所有内容:
>>f=open(‘文件路径’)
>>for line in f.readlines():
print(line)
>>f.close()
8.fileinput实现迭代
>>import fileinput
\ >>for line in fileinput.input(‘文件路径’):
print(line)
>>f.close()
9.文件迭代器
文件的对象是可以迭代的!!
>>f=open(‘文件路径’)
>>for line in f:
print(char)
>>f.close()
迭代文件,可以使用其他的迭代语句。
10.字符串列表
>>f=open(‘文件路径’,’w’)
>>f.write(‘1 line\n’)
>>f.write(‘2 line\n’)
>>f.write(‘3 line\n’)
>>f.close()
>>lines=list(open(‘文件路径’))
>>lines
输出:[‘1 line’,’2 line’,’3 line’]
>>first,second,third=open(‘文件路径’)
>>first
输出:1 line
>>second
输出:2 line
>>third
输出:2 line
<!--EndFragment-->