首页 > 代码库 > python--文件和流
python--文件和流
一、打开文件:
open(name[, mode[, buffering]]):name指文件名,mode指模式参数,buffering指缓冲。
1、如果没有找到则会抛异常。
2、文件模式:mode
‘r‘:读模式
‘w‘:写模式
‘a‘:追加模式
‘b‘:二进制模式,比如声音剪辑或者图像则需要使用二进制模式。
‘+‘:读、写模式。
3、缓冲:buffering。
控制着文件的缓冲,如果参数是0或者False,I/O输入输出就是无缓冲的(所有的读写直接针对硬盘),如果是1或者True,I/O就是有缓冲的(意思是使用内存代替硬盘,让程序更快,只有使用flush或者close时才会更新到硬盘)。
大于1的数字代表缓冲区的大小(单位字节),-1或者任何负数代表使用默认的缓冲区大小。
二、基本的文件方法:
1、读写:
2、管道输出:Linux Shell管道符|的作用,将一个命令的标准输出和下一个命令的标准输入连接在一起。
cat somefile.txt | python somescript.py | sort:somescript.py会从它的sys.stdin中读取数据(cat somefile.txt写入的),并把结果写入它的sys.stdout中。
3、随机访问:
seek(offset[, whence]):把当前位置(进行读写的位置)移动到由offset和whence定义的位置。offset表示偏移量必须非负数。whence:默认0表示偏移量从文件开头开始计算的。 whence设置为1(相对于当前位置移动,此时偏移量offset可以是负数)或者2(相对于文件结尾移动)。
tell方法:返回当前文件的位置。
4、读写行:file.readline读取单独的一行(从当前位置开始直到一个换行符出现,也读取换行符)
5、关闭文件:
1、可以使用try/finally语句:
try:
#write data to your file
finally:
#file.close()
2、使用with语句:
from __future__ import with statement
with open(“somefile”) as somefile
do something(somefile)
6、使用文件的基本方法:
7、对文件内容进行迭代:
1、使用while循环按字节处理:
2、按行操作:
3、读取所有内容:
前提:文件不是很大。
使用read迭代每个字符:
使用readlines迭代行:
4、使用fileinput实现懒惰行迭代:
5、文件迭代器:文件对象是可迭代的,可以直接在for循环中使用它们,从而对它们进行迭代。
python--文件和流