持久存储
如何将数据持久到磁盘?
strip
>>> str2=' 123 '
>>> print(str2.strip())
123
>>>
相当于Java的trim
open写
"""这个Python中的注释"""
print('start')
names=[]
descs=[]
try:
data=open('test.txt')
for dd in data:
try:
(name,desc)=dd.split(':',1)
dd = dd.strip()
if name=='乔丹':
names.append(name+'23')
elif name=='科比':
names.append(name+'24')
elif name=='麦迪':
names.append(name+'1')
descs.append(desc)
except:
pass
data.close()
except:
print('the file is missing')
try:
print(names)
print(descs)
data_name=open('name.txt','w')
data_desc=open('desc.txt','w')
print(names,file=data_name)
print(descs,file=data_desc)
data_name.close()
data_desc.close()
except:
print('IO exception')
print('end')
================== RESTART: F:\Improve\Python\py\open_op.py ==================
start
['乔丹23', '科比24', '麦迪1', '乔丹23', '麦迪1']
['nba最牛逼的人\n', '投篮美如画\n', '干拔我最爱\n', '无解后仰\n', '35秒:13分']
end
运行.py,可以用idle打开它,然后F5运行
try/except/finally
"""这个Python中的注释"""
print('start')
names=[]
descs=[]
try:
data=open('test.txt')
for dd in data:
try:
(name,desc)=dd.split(':',1)
dd = dd.strip()
if name=='乔丹':
names.append(name+'23')
elif name=='科比':
names.append(name+'24')
elif name=='麦迪':
names.append(name+'1')
descs.append(desc)
except:
pass
except:
print('the file is missing')
finally:
data.close()
try:
print(names)
print(descs)
data_name=open('name.txt','w')
data_desc=open('desc.txt','w')
print(names,file=data_name)
print(descs,file=data_desc)
except:
print('IO exception')
finally:
data_name.close()
data_desc.close()
print('end')
和Java差不多。
区别是:资源对象不需要定义在try外面。
try/with/except
"""这个Python中的注释"""
print('start')
names=[]
descs=[]
try:
with open('test.txt') as data:
for dd in data:
try:
(name,desc)=dd.split(':',1)
dd = dd.strip()
if name=='乔丹':
names.append(name+'23')
elif name=='科比':
names.append(name+'24')
elif name=='麦迪':
names.append(name+'1')
descs.append(desc)
except:
pass
except IOError as err:
print('the file is missing')
print(err)
try:
print(names)
print(descs)
data_name=open('name.txt','w')
data_desc=open('desc.txt','w')
print(names,file=data_name)
print(descs,file=data_desc)
except:
print('IO exception')
print('end')
相当于Java的try-resource。
with
>>> with open('test.txt') as tt:
print(tt.readline())
乔丹:nba最牛逼的人
>>>
新用法。
pickle
Python的一个标准库。
import pickle
with open('tmp.pickle','wb') as mydata:
pickle.dump([1,2,3,["haha","hello"]],mydata)
with open('tmp.pickle','rb') as mydata2:
a_list=pickle.load(mydata2)
print(a_list)
以.py的文件进行运行
pickle.dump:保存数据
pickle.load:恢复数据
wb:写,以二进制流
总结
strip
finally
except
str()
locals()
in
with
sys.stdout
pickle
pickle.dump
pickle.load