1. 打开文件
open(name[,model[,buffering]])
open函数使用文件名作为唯一的强制参数,然后返回一个文件对象。模式(model)和绶冲(buffering)参数都可以可选的
例:f=open('somefile.txt')
如果文件不存在抛出IO错误
模式:r 读模式 w 写模式 a 追加模式 b二进制模式 + 读/写模式
绶冲:0/false 无绶冲 1/TRUE 表示有绶区 大于1表示绶冲区的大小(单位为字节)2. 文件基本操作
2.1)读和写
>>> f = open('somefile.txt', 'w')
>>> f.write('Hello')#会将hello被追加文件已存在部分的后面
>>> f.write('world')
>>> f.close()
>>> f = open('somefile.txt', 'w')
>>> f.read(4)
'Hell'
>>> f.read()
'o. world'
2.2) 管式输出
在unix 中使用管道可以在一个命令后面续写其他的多个命令
$ cat somefile.txt | python somefile.py | sort
这个管道由以下3个命令组成
a. cat somefile.txt: 只是把somefile.txt 的内容写到标准输出
b. python somefile.py: 运行python 脚本,脚本应该从标准输入读,把结果写到标准输出
c. sort:这条命令从标准输入读取所有的文件,按字母排序然后把标准写入到标准输出
2.3) 读写行
file.readline() #读取一行
file.readlines() #读取所有行并将其做为列表返回
file.writelines() # 传给他一个字符串列表,会把所有的字符串写入文件(或流)程序不会增加新行,需要自已添加
file.write() #没有writeline方法,因为有write
2.4) 关闭文件
为了安全其见,使用完文件后要关闭文件,如果想确保文件被关闭了,那么使用try/finally语句
>>> try:
#write data
finally:
file.close()3. 对文件内容进行迭代
3.1)按字节处理
常见的迭代方法是在while循环中使用read方法,如用read方法对每个字符进行循环
>>>f = open(filename)
>>>char = f.read(1)
>>>while char:
>>> if not char: break
>>> process(char)
>>>f.close()
3.2) 按行处理
当处理文件时,经常对文件的行进行迭代而不是处理单个字符,使用行方法和单个字符类似,使用readline方法
>>>f = open(filename)
>>>while True:
>>> line = f.readline()
>>> if not char: break
>>> process(char)
>>>f.close()
3.3) 按所有内容
>>> f = open(filename)
>>> for line in f.readlines(); #针对文件不是很大的操作,如果是大文件将耗掉大量性能
>>> process(line)
>>> f.close()
3.4 使用fileinput实现懒惰行迭代
对一个非常大的文件进行迭代操作时,readlines会占用太多的内存,这个时候可以使用while 循环和readline方法来替代,
在python中如果能使用for循环那么肯定是首选,本例恰好是可以使用for循环可以使用一个名为懒惰行迭代的方法:因为它
只是读取实际需要的文件部分
>>>import fileinput
>>>for line in fileinput.input(filename):
>>> process(line)将追加实例

5005

被折叠的 条评论
为什么被折叠?



