python文件处理:
能调用方法的都是对象!
打开一个文件:
open("文件路径/文件名",‘r’) 以只读的方式打开一个文件
>>> open('file.txt','r').read() 打开一个文件同时将文件的内容读取出来。
'When summer comes, every girl will paste sun cream, \nin the purpose of protecting their skin. It is said \n'
>>> f=open("file.txt",'r') 打开一个文件,创建一个文件对象f
>>> f.read()
'When summer comes, every girl will paste sun cream, \nin the purpose of protecting their skin. It is said \n'
>>> f.close() 关闭文件对象f
操作文件的几种模式;
r:只读方式打开一个文件
w:写方式打开一个文件,如果文件已经存在,会清空文件内容。如果文件不存在,会创建新文件。
a:以追加方式打开一个文件,不会清空文件内容。
r+:以读写的方式打开一个文件,这种方式不会清空已经存在的文件的内容。
w+:以读写的方式打开一个文件,会清空以存在文件里面的内容。
a+: 以读写的方式打开一个文件,追加模式,不会覆盖清空已存在的文件内容。
rb:以二进制读写方式打开一个文件,用于处理二进制文件。
wb:以二进制读写方式打开一个文件,用于处理二进制文件。会清空已存在文件内容
ab:以二进制读写方式打开一个文件,用于处理二进制文件。追加模式。
操作文件的常用方法:
1、read(size)方法:默认如果不加参数会将打开的文件内容全部输出,以字符串的方式读取全部内容,不会分行。
read(5):如果加了参数,这里是指值输出5个字符,中文指5个汉字,英文指5个字母。
>>> f.read()
'When summer comes, every girl will paste sun cream, \nin the purpose of protecting their skin. It is said \n'
>>> f=open("file.txt",'r')
>>> f.read(5)
'When
2、readline()方法:可以一行一行的读取文件的内容,直至全部输出。
>>> f=open("file.txt",'r')
>>> f.readline() 默认不加参数,每行都会全部输出
'When summer comes, every girl will paste sun cream, \n'
>>> f=open("file.txt",'r')
>>> f=open("file.txt",'r')
>>> f.readline(5) 添加参数之后,会输出参数指定的字符内容。
'When '
>>> f.readline(5)
'summe'
3、readlines()方法:将文件的所有内容全部读取到一个列表中。
>>> f=open("file.txt",'r')
>>> f.readlines()
['When summer comes, every girl will paste sun cream, \n', 'in the purpose of protecting their skin. It is said \n']
>>> type(f.readlines()) 可以看到类型是list类型。
<type 'list'>
>>> f=open("file.txt",'r')
>>> f1=f.readlines()
>>> f1
['When summer comes, every girl will paste sun cream, \n', 'in the purpose of protecting their skin. It is said \n']
>>> for i in f1: 可以使用for循环将readlines()方法生成的列表内容逐行读取出来。
... print(i)
...
When summer comes, every girl will paste sun cream,
in the purpose of protecting their skin. It is said
4、xreadlines()方法:迭代器,循环一次读取一行,读取文件内容的速度很快,不会把文件内容全部去读到内存中,适合处理大文件。
>>> f=open("file.txt",'r')
>>> f1=f.xreadlines() 这里会生成一个迭代器对象f1,可以通过for循环的方式,将迭代器中的内容逐行读取出来。
>>> for i in f1:
... print(i)
...
aaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbb
5、write()方法: 将内容写入到文件中,如果是字符串以外的数据格式,需要先将对方转换成字符串格式,才能正常写入。
>>> f.write('hello world') 向文件中写入内容
>>> f.flush() 强制刷新使修改直接生效。
6、tell()方法: 返回一个整数,表示当前文件的指针位置,也就是文件头的比特数。
>>> f=open("file.txt",'r')
>>> f.readline()
'aaaaaaaaaaaaaaaaaaaa\n'
>>> f.tell()
21
>>> f.readline()
'bbbbbbbbbbbbbbbbbbb\n'
>>> f.tell()
41
>>> f.readline()
'vvvvvvvvvvvvvvvvvvvvvvv\n'
>>> f.tell()
65
>>> f.readline()
'fffffffffffffffffffffffff\n'
>>> f.tell()
91
7、seek(offset[,whence])方法:用来移动文件指针,可以将文件的指针移动到文件的不同位置。
offset:表示开始的偏移量,也就是代表需移动偏移的字节数。单位 比特,可正可负
0表示是文件头部开始算起,是默认值
1代表从当前位置开始算起
2代表文件尾部开始算起
>>> f=open("file.txt",'r')
>>> f.readline()
'aaaaaaaaaaaaaaaaaaaa\n'
>>> f.tell()
21
>>> f.readline()
'bbbbbbbbbbbbbbbbbbb\n'
>>> f.tell()
41
>>> f.seek(0)
>>> f.readline()
'aaaaaaaaaaaaaaaaaaaa\n'
>>> f.tell()
21