【Python基础教程】第11章 文件

11.2 文件常用方法

打开文件

open(name[, mode[, buffering]])

name:文件名,此参数是必须的。

mode:打开文件的模式,此参数是可选的,默认打开的文件为读模式。


buffering:缓冲区。

如果参数为0(或False),I/O是无缓冲的。(所有的读写操作直接针对硬盘)

如果参数为1(或True),I/O是有缓冲的。(读写操作在内存中,程序更快,只有使用flush或close文件时才更新数据到硬盘上)

大于1的数字代表缓冲区的大小(单位是字节),-1(或其他任何负数)代表使用默认的缓冲区大小。

读文件

read():将文件中的内容当作一个整的字符串读出来

read(size):从当前位置开始,至多读取size字节的字符串

readline():读取一行

readlines():将文件中的所有行存到列表中

写文件

write(string):将一个字符串写到文件中

writelines(...):以字符串的列表为参数,把所有的字符串写入文件

关闭文件

close


补充:

(1)随机访问:

seek:读写位置移动到指定的位置

tell:返回当前文件的读写位置

(2)with语句自动关闭文件

with open("somefile.txt") as somefile:
    do_something(somefile)

11.3 迭代文件内容

#11.3.1 按字节操作
#每次处理单个字符
f = open(filename)
char = f.read(1)
while char:
    process(char)
    char = f.read(1)
f.close()

#用while/True每次处理单个字符(更好)
f = open(filename)
while True:
    char = f.read(1)
    if not char: break
    process(char)
f.close()

#11.3.2 按行操作
f = open(filename)
while True:
    line = f.readline()
    if not line:break
    process(line)
f.close()

#11.3.3 读取所有内容
#(1)按字符处理
f = open(filename)
for char in f.read():
    process(char)
f.close()

#(2)按行处理
f = open(filename)
for line in f.readlines():
    process(line)
f.close()

#11.3.4 用fileinput惰性迭代
#为何称为惰性迭代?fileinput只读取实际需要的部分
import fileinput
for line in fileinput.input(filename):
    process(line)

#11.3.5 文件迭代器
#从Python2.2开始,文件对象是可迭代的
#实例1:
for line in open(filename):
    process(line)

#实例2:
import sys
for line in sys.stdin:
    process(line)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值