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"}