项目: 51备忘录v0.32
添加功能:
- 保存功能
- 用于查询,分析,回复数据
- 添加配置文件
- 默认配置
-用户自定义配置
- 默认配置
#保存数据,纯文本,pkl
data = [{'id':1, 'time':'1.2', 'thing':'买了一件毛衣'}, {'id':2, 'time':'1.6', 'thing':'find a bug'}, {'id':3, 'time':'1.3', 'thing':'write five lines of python'}]
import os
base_dir = r'D:\python全站' #基准目录
data_path = os.path.join(base_dir, 'data.db') # 文件的目录,os.path.join()组合目录
with open(data_path, 'w') as f:
for db in data:
print(db.values())
line = '-'.join(db.values()) # 出现下面错误,是因为字典的值的类型不一样,有int,有str,需要统一类型
dict_values([1, '1.2', '买了一件毛衣'])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in ()
9 for db in data:
10 print(db.values())
---> 11 line = '-'.join(db.values())
12
TypeError: sequence item 0: expected str instance, int found
# open? # open的使用方法和参数,此次用到的是encoding='utf-8'
# Signature: open(file, mode='r', buffering=-1, encoding=None,
errors=None, newline=None,
closefd=True, opener=None)
#保存数据,纯文本,pkl
data = [{'id':1, 'time':'1.2', 'thing':'买了一件毛衣'}, {'id':2, 'time':'1.6', 'thing':'find a bug'}, {'id':3, 'time':'1.3', 'thing':'write five lines of python'}]
import os
base_dir = r'D:\python全站'
data_path = os.path.join(base_dir, 'data.db')
with open(data_path, 'w') as f:
for db in data:
print(db.values())
line = '-'.join([str(x) for x in db.values()]) # 列表推导式[x for x in 可迭代的数据结构]
f.write(line) # 将处理过的数据写入到文件f,data_path
dict_values([1, '1.2', '买了一件毛衣'])
dict_values([2, '1.6', 'find a bug'])
dict_values([3, '1.3', 'write five lines of python'])
# 1-1.2-ÂňÁËŇťźţĂŤŇÂ2-1.6-find a bug3-1.3-write five lines of python # 没有换行的操作:
#保存数据,纯文本,pkl
data = [{'id':1, 'time':'1.2', 'thing':'买了一件毛衣'}, {'id':2, 'time':'1.6', 'thing':'find a bug'}, {'id':3, 'time':'1.3', 'thing':'write five lines of python'}]
import os
base_dir = r'D:\python全站'
data_path = os.path.join(base_dir, 'data.db')
with open(data_path, 'w') as f:
for db in data:
print(db.values())
line = '-'.join([str(x) for x in db.values()]) # 列表推导式
f.write(line + '\n') # 换行的操作 + '\n'
dict_values([1, '1.2', '买了一件毛衣'])
dict_values([2, '1.6', 'find a bug'])
dict_values([3, '1.3', 'write five lines of python'])
#保存数据,纯文本,pkl
data = [{'id':1, 'time':'1.2', 'thing':'买了一件毛衣'}, {'id':2, 'time':'1.6', 'thing':'find a bug'}, {'id':3, 'time':'1.3', 'thing':'write five lines of python'}]
import os
base_dir = r'D:\python全站'
data_path = os.path.join(base_dir, 'data.db')
with open(data_path, 'w', encoding = 'utf-8') as f: # 写数据时候使用的编码是 utf-8,通用
for db in data:
print(db.values())
line = '-'.join([str(x) for x in db.values()]) # 列表推导式
f.write(line + '\n')
dict_values([1, '1.2', '买了一件毛衣'])
dict_values([2, '1.6', 'find a bug'])
dict_values([3, '1.3', 'write five lines of python'])
#保存数据,纯文本,pkl 封装
def save_dic(dic):
# import os
# base_dir = r'D:\python全站'
# data_path = os.path.join(base_dir, 'data.db')
with open(data_path, 'w', encoding = 'utf-8') as f:
for db in data:
print(db.values())
line = '-'.join([str(x) for x in db.values()]) # 列表推导式
f.write(line + '\n')
return 'saved' # 思想:程序正确执行与否,都返回一个状态码。
save_dic(data_path) # 调用函数,传入参数
dict_values([1, '1.2', '买了一件毛衣'])
dict_values([2, '1.6', 'find a bug'])
dict_values([3, '1.3', 'write five lines of python'])
'saved'
#保存数据,纯文本,pkl 封装 + 异常判断 + 格式化返回值
def save_dic(dic):
'保持数据到文件'
ret = {'status':0, 'statusText':'saved'}
try:
with open(data_path, 'w', encoding = 'utf-8') as f:
for db in data:
# print(db.values())
line = '-'.join([x for x in db.values()]) # x没有转换
f.write(line + '\n')
except Exception as err:
# print(err)
ret['status'] = 1
ret['statusText'] = err
return ret
# save_dic(data)
save_dic(data_path)
{'status': 1,
'statusText': TypeError('sequence item 0: expected str instance, int found')}
#保存数据,纯文本,pkl 封装 + 异常判断 + 格式化返回值
def save_dic(dic):
'保持数据到文件'
ret = {'status':0, 'statusText':'saved'}
try:
with open(data_path, 'w', encoding = 'utf-8') as f:
for db in data:
# print(db.values())
line = '-'.join([str(x) for x in db.values()]) #
f.write(line + '\n')
except Exception as err:
# print(err)
ret['status'] = 1
ret['statusText'] = err
return ret
# save_dic(data)
save_dic(data_path)
{'status': 0, 'statusText': 'saved'}
import pickle
pkl_path = os.path.join(base_dir, 'data.pkl')
with open(pkl_path, 'wb') as f: # 如果没有这个文件的话,pickle会自动创建这个文件
pickle.dump(data, f)
def save_to_pkl(dic):
pkl_path = os.path.join(base_dir, 'data.pkl2')
with open(pkl_path, 'wb') as f: # 使用wb模式,保存
pickle.dump(dic, f)
save_to_pkl(data)