【Python学习笔记Day31】5.7 永久存储(转化为文件)

【Python学习笔记Day31】5.7 永久存储(转化为文件)

把列表,字符串变为文本很简单
把文本数据恢复为列表,字符串等就变得很复杂
python提供了一个模块,讲列表,字典等数据类型转化为二进制文件

pickle模块 几乎可以把python的对象转化为二进制存放

存放:pickling
读取:unpickling
import pickle   #在使用前导入模块
my_list = [123,'weivid',['anothor']]

写入文件

pickle_file = open('31_my_list.pkl','wb')  #建议使用后缀名为pkl的文件名,注意使用wb形式

两种方法:

1.dump()方法 存储方法

pickle.dump(my_list,pickle_file)#把my_list列表放入文件中
pickle_file.close() #文件关闭

2.load()方法 打开文件

pickle_file1 = open('31_my_list.pkl','rb')  #rb形式
my_list2 = pickle.load(pickle_file1)
print(my_list2)     
pickle_file1.close()

下面给出一个简单的例子,但是现在这里的url获取已经无法成功了

import urllib.request
import json
import pickle

pickle_file=open('city_data.pkl','rb')
city= pickle.load(pickle_file)
password=input('请输入城市:')
name1=city[password]
File1 =urllib.request.urlopen('http://m.weather.com.cn/data/'+name1+'.html')#打开url
weatherHTML= File1.read().decode('utf-8')#读入打开的url
weatherJSON = json.JSONDecoder().decode(weatherHTML)#创建json
weatherInfo = weatherJSON['weatherinfo']
#打印信息
print ( '城市:', weatherInfo['city'])
print ('时间:', weatherInfo['date_y'])
print ( '24小时天气:')
print ('温度:', weatherInfo['temp1'])
print ('天气:', weatherInfo['weather1'])
print ('风速:', weatherInfo['wind1'])
print ('紫外线:', weatherInfo['index_uv'])
print ('穿衣指数:', weatherInfo['index_d'])
print ('48小时天气:')
print ('温度:', weatherInfo['temp2'])
print ('天气:', weatherInfo['weather2'])
print ('风速:', weatherInfo['wind2'])
print ('紫外线:', weatherInfo['index48_uv'])
print ('穿衣指数:', weatherInfo['index48_d'])
print ('72小时天气:')
print ('温度:', weatherInfo['temp3'])
print ('天气:', weatherInfo['weather3'])
print ('风速:', weatherInfo['wind3'])
input ('按任意键退出:')

你可能感兴趣的:(Python脚本语言)