打开文件:
形式如下
f=open('/tmp/hello','w')
open(路径+文件名,读写模式),注意路径中可能含有转义字符比如"\t",要在路径名前加r
读写模式:
r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式如:'rb','wb','r+b'等等,读写模式的类型有:
- U 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
- 以写方式打开,
- 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
- 读写模式打开
- 以读写模式打开 (参见 w )
- 以读写模式打开 (参见 a )
- 以二进制读模式打开
- 以二进制写模式打开 (参见 w )
- 以二进制追加模式打开 (参见 a )
- 以二进制读写模式打开 (参见 r+ )
- 以二进制读写模式打开 (参见 w+ )
- 以二进制读写模式打开 (参见 a+ )
注意:
1、使用'W',文件若存在,首先要清空,然后(重新)创建,
2、使用'a'模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。
读文件的一些方式:
f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串),读一次,指针停留在读完之后的位置
file.readline() 返回一行w
file.readlines() 返回所有行(以字符串list的形式)
file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行
for line in f: print line #通过迭代器访问
f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.
f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
f.seek(偏移量,[起始位置]) 单独一行执行,用来移动文件指针 eg:f.seek(15),f(offset,whence)
Whence=0:偏移量从文件头开始计算
Whence=1:偏移量从当前位置开始
Whence=2:偏移量从文件末尾开始
偏移量:单位:比特,可正可负f.writelines(lines):lines为一个list,将list中的所有元素写进文件中