1.文件的打开方式
open(name[,mode[buf]])
name:文件的路径
mode:文件的打开方式,如w、r、wr、rw等
buf:缓存区大小
mode详解:
mode | 说明 | 备注 |
---|---|---|
r | 只读方式打开 | 文件必须存在 |
w | 只写方式打开 | 文件不存在则创建文件 文件存在则先清空文件 |
a | 追加方式打开(即一打开文件,文件指针自动移到文件末尾) | 文件不存在则创建文件 |
r+ | 以读写方式打开文件,可对文件进行读和写操作。文件指针在文件头 | |
w+ | 消除文件内容,然后以读写方式打开文件。 | |
a+ | 以读写方式打开文件,并把文件指针移到文件尾。 |
注:rb,wb,ab,ab+,wb+,rb+ab+,以二进制打开文件,如打开图片等
2.文件读取方式
read([size]):读取文件(读取size个字节,默认读取全部)
readline([size]):读取一行
readlines([size]):读取文件至内存(并非整个文件,而是DEFAULT_BUFFER_SIZE大小进缓存,再返回其每一行组成的列表
readline
s示例:
#-*-coding:utf-8-*-
fr = open('c:\\readline.txt')
for line in fh.readlines():
print line
readline示例
#-*-coding:utf-8-*-
f = open('readline.txt','r')
for line in open('readline.txt'):
line = f.readline()
print line
3.文件写入方式
write(str):直接将字符串写入文件
write(sequence_of_strings):将多行写到文件
4.简单示例
#-*-coding:utf-8-*-
#文件名:hello.txt,内容:hello world!
#0x00 r方式
fo = open("hello.txt")#默认以只读方式打开
fr = fo.read()
fo.wirte("write hello!") #此时报错,因为fo以只读方式打开
#0x01 w方式
fo = open("hello.txt","w") #写文件,无则创建,有则清空
fo.write("hello by write") #此时原字符串被置换为hello by write
fo.close()
#0x02 追加方式a
fo = open("hello.txt","a") #写文件,无则创建
fo.write("hello by a") #文件原内容保留,新加行hello by a
fo.close()
#0x03 读写方式r+
fo = open("hello.txt","r+") #读写方式r+
fo.write("hi r+") #此时的文件内容改为:hi r+ world!,覆盖了原来hello的位置
fo.close()
#0x04 读写方式w+
fo = open("hello.txt","w+") #读写方式w+
fo.read() #此时的文件为空
fo.close()
总结,除了要了解以上文件的基本操作方式,还应当了解文件的其他操作方法。下面我们再来了解下如何打开创建一个utf-8或者其他编码格式的文件呢?
5.codecs
codecs模块提供方法创建指定编码格式文件
open(fname,mode,encoding,errors,buffering)
#-*-coding:utf-8-*-
import codecs
f = codecs.open('codecs.txt','w','utf-8') #默认的mode为rb
f.write(u'博客')
f.close()
关于codecs更多的说明,请参考其他教学资料。