Python复习笔记—文件

1. open打开文件

open(filename, mode)

mode:只读(r),只写(w),追加(a),读写(r+),二进制读(rb,wb,ab, r+b),

2. 读文件

read(),读全部文件

read([size]),读size个字节

readline()读开始一行

readlines()读所有行到一个list

3. 写文件

write(string),写入字符串,非字符串必须先转换为字符串

4. 随机读写

seek(offset, from),

from:0文件开始;1当前位置,2文件末尾

5. 安全读写

用open语句,会自动关闭文件,甚至是在发生异常的情况下

with open(filename, mode) as f :

dosomething(f)

6. 序列化和反序列化

pickle.dump(obj, f),序列化到文件;

obj = pickle.load(f),反序列化;

7. 例子

>>> #write file
>>> f = open('D:/temp/python_test.txt', 'w')
>>> f.write('abcdefghijklmnopqrstuvwxyz\r\n')
>>> f.write('0123456789\r\n') #\r\n is line separator on Windows
>>> val = ('value is', 12)
>>> f.write(str(val)) # nonstring object should be convert string first
>>> f.close()

>>> #read file
>>> f = open('D:/temp/python_test.txt', 'r')
>>> f.read()
"abcdefghijklmnopqrstuvwxyz\r\n0123456789\r\n('value is', 12)"
>>> f.seek(0, 0)
>>> f.tell()
0L
>>> f.readline()
'abcdefghijklmnopqrstuvwxyz\r\n'
>>> f.readlines()
['0123456789\r\n', "('value is', 12)"]
>>> f.seek(0, 0) # move to begin of the file
>>> f.read(3)
'abc'
>>> f.seek(4, 1) # skip 4 bytes
>>> f.read(1)
'h'
>>> f.seek(-2, 2) # Go to the 3rd byte before the end

>>> f.read(1)
'2'
>>> f.seek(0, 0) 
>>>
>>> # read line by line
>>> for line in f :
	print line

	
abcdefghijklmnopqrstuvwxyz


0123456789


('value is', 12)
>>> f.close()

>>> # read with 'with'
>>> with open('D:/temp/python_test.txt', 'r') as f:
	for line in f :
		print line

		
abcdefghijklmnopqrstuvwxyz


0123456789


('value is', 12)

>>> # serialize/unserialize object
>>> with open('D:/temp/python_test.txt', 'w') as f :
	pickle.dump([1, '33', 3.14], f)

>>> with open('D:/temp/python_test.txt', 'r') as f :
	x = pickle.load(f)
	print x

[1, '33', 3.14]
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值