您的位置:首页 > 编程语言 > Python开发

【Python 3】持久存储

2015-12-16 18:07 751 查看

持久存储

如何将数据持久到磁盘?

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

print

finally

except

str()

locals()

in

with

sys.stdout

pickle

pickle.dump

pickle.load
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python