6、IO

 1、IO:输入输出流

A、读文件
	 	# r:读,若文件不存在报错IOError
	 	f = open('c:/1.txt','r')
	 	# 读取文件内容,返回字符串
	 	f.read()
	 	# 关闭文件
	 	f.close()
	 	# 捕获异常
	 	# r:用ASCLL编码方式  rb:用二进制方式
	 	try:
	 		f = open('c:/1.txt','r')
	 	# f = open('c:/1.txt','r','gbk') 指定编码
	 		print r.read()
	 	finally:
	 		if f:
	 			f.close()
	 	# 简洁,用with
	 	with open('c:/1.txt','r') as f:
	 		print f.read()
	 	# 文件过大,反复调用read(size)
	 	f.read(10)
	 	#用每行读取的方式
	 	for line in f.readlines():
	 		print line.strip()
B、写文件
		# w wb
		with open('c:/1.txt', 'w') as f:
	    	f.write('Hello, world!')

2、操作文件与目录

 

	# os模块
	import os
	# 操作系统名称 POSIX:linux\unix\mac;nt:window
	os.name
	# 环境变量
	os.environ
	# 具体 某变量
	os.getenv('path')
	# 查看绝对路径
	os.path.abspath('.')
	# 创建目录 dir,使用join 连接目录
	os.path.join('c:/','dir') # c:/dir
	os.mkdir('c:/dir')
	# 删除目录
	os.rmdir('c:/dir')
	# 拆分文件与目录
	os.path.split('c:/1.txt') # ('c:/','1.txt')
	# 拆分文件后缀
	os.path.splitext('c:/1.txt') # ('c:/1','txt')
	# 文件重命名
	os.rename('1.txt','1.py')
	# 产出文件
	os.remove('1.py')

3、序列化

	# 引用模块 CPickle用C语言写的快,pickle用Python写的
	try:
		import cPickle as pickle
	except ImportError:
		import pickle
	# 序列化
	d = '123'
	pickle.dumps(d) # 序列化成一个字符串
	# 序列化,保存文件
	f = open('c:/1.py','wb')
	pickle.dump(d,f)
	# 反序列化,读文件
	f = open('c:/1.py','rb')
	d = pickle.load(f)
	f.close()

4、JSON

A:Python集合与json相互转换
	# 传输速度快
	# pythonx对象转json
	import json
	d = {'a':1,'b',2}
	# dumps() 转为json字符串;dump()可以直接将转为的字符串存入文件中
	json.dumps(d)   # json标准字符串 '{"a":1,"b":2}'
	# json转Python对象
	s = '{"a":1,"b":2}'
	# loads() :字符串转为对象;load() 将文件中的字符串读出,转为Python对象
	json.loads(s); # {'a':1,'b',2}
B:类与json相互转换
	#coding=utf-8
	class Student (object):
		def __init__(self,id,name):
			self.id = id
			self.name = name
	class User(object):
		def __init__(self,id,name,age):
			self.id = id
			self.name = name
			self.age = age
	def classTojson(self):
		return {
			'id':self.id,
			'name':self.name
		}
	def StrToStudent(s):
		return Student(s['id'],s['name'])
	if __name__ == '__main__':
		import json
		s = Student(1,'name')
		# 可以自己定义
		print json.dumps(s,default = classTojson)
		# {"id":1,"name":"name"}
		print '-----------------------------'
		
		# json字符串转为对象
		str_stu = '{"id":1,"name":"name"}'
		stu = json.loads(str_stu,object_hook = StrToStudent)
		print stu.id,' --',stu.name
		print '-----------------------------'
		
		u = User(1,'user',12)
		# 可以调用本身带有的方法
		print json.dumps(u,default = lambda obj:obj.__dict__)
		# {"age":12,"is":1,"name":"name"}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值