Python3.3 学习笔记6 - 文件
使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。(不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。)
- 文件属性:
- closed #标记文件是否已经关闭,由close()改写
- encoding #文件编码
- mode #打开模式 r w a U
- name #文件名
- newlines #文件中用到的换行模式,是一个tuple
- softspace #boolean型 ,一般为0,据说用于print
- 打开文件:open(路径+文件名,读入模式,缓存区),后面两项可选
- 读入模式(可叠加使用):
- r只读(默认),
- w写入(会覆盖原有文件),
- x新建并写入,
- a追加(如果文件不存在,创建对应文件),
- b二进制模式,
- t文本模式,
- +读写文件,
- U提供通用换行符。
- 举例:file1 = open('c://test.txt', 'wb+'),以二进制读写模式打开test.文件,注意路径需要使用//。
- 读入模式(可叠加使用):
- 读入文件内容:
- file1.read([size]):size为读取长度,以byte为单位,若size未指定则返回整个文件。如果文件大小>2倍内存则有问题。f.read()读到文件尾时返回""(空字串)
- file1.readline([size]):读出一行数据的size个字符到行尾,若size未指定,返回整行数据。
- file1.readlines([size]):返回包含size行的列表,size 未指定则返回全部行。
- 写入或追加文件内容w,a:关闭文件:
- file1.write(string):写入一个字符串,原有文件内容会被删除。(只能写入一行数据,换行用'\n'或者写入字符串就已经换行。)
- file1.writelines(list或者tuple):将列表或者元组按照行写入文件。
- file1.append(string):追加新加内容到文件末尾
- 指针相关关闭文件:file1.colse()
- file1.tell():返回一个表示当前文件指针位置的整数
- file1.seek(偏移量,[起始位置]):移动文件指针(偏移量:以比特为单位,可正可负;起始位置:00文件头,默认值,1-当前位置,2-文件尾)
其他补充:
- 使用pickle模块在文件中存储和恢复python对象,例:
-
testFile = open('pickle.txt','w')
#and import pickle
import pickle
testDict = {'name':'Chen Zhe','gender':'male'}
pickle.dump(testDict,testFile)
testFile.close()
testFile = open('pickle.txt','r')
print pickle.load(testFile)
testFile.close() - python中统一用\n换行,用U模式打开文件,就是支持所有的换行模式,也就说‘\r’ '\n' '\r\n'都可表示换行。