python 文件操作

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)

将追加实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值