pyhton -pickle使用方法(待补充)

pyhton -pickle使用方法

新建文件:
root@kali:~/python/atmnew# ls
account.log account.pkl account.py logger.py logger.pyc pickle_test.py record_account.py
root@kali:~/python/atmnew#

1、账户登录与识别

root@kali:~/python/atmnew# cat account.py 
#!usr/bin/python
# --*-- coding:utf-8 --*--

'''用户账户信息'''
import pickle#导入持久化序列模块

#新建字典,第一个元素是帐号信息,账户对应的第一个值为登录密码,第二值为信用卡额度,第三个值为可用额度
account_info = {'0123456789':['xwb123456',15000,12000],
        '9876543210':['xwb654321',20000,18000],
        }

f = open('account.pkl','wb')#对account.pkl文件使用二进制写入方式打开,也可以w+打开


#把字典account_info文件dump到打开的account.pkl文件中去。就是把字典account_info文件所有状态信息写入account.pkl文件中去,
#下次使用,直接从account.pkl文件中取出来,他就是一个字典信息,也是等于格式化存储到account.pkl文件中
pickle.dump(account_info,f)#使用pickle方式把字典account_info文件dump到打开的account.pkl文件中去。

f.close()
root@kali:~/python/atmnew# 

2、交易函数与记录

root@kali:~/python/atmnew# cat record_account.py 
#!/usr/bin/python
# --*-- coding:utf-8 --*--

import pickle
import time,logger#日志模块

#第一步导入时间
pkl_file = open('account.pkl','rb')#只读二进制方式打开account.pkl文件,读取二进制形式到pkl_file文件中
account_list = pickle.load(pkl_file)#使用pickle加载二进制文件pkl_file,到字典account_list中
pkl_file.close()#关闭文件

#对账户和花费金额进行消费。记账功能
def recon(account,cost_amount):
    #
    pkl_file = open('account.pkl','wb')#写入二进制方式打开account.pkl文件,读取二进制形式到pkl_file文件中
    old_position = account_list[account][2]#取出字典account_list中账户0123456789的第三个值可用额度12000赋值给old_position 
    new_position = old_position - cost_amount#使用可用额度old_position减去消费金额cost_amount,为更新后可用额度new_position
    account_list[account][2] = new_position#把更新后的可用额度new_position,赋值给字典account_list中账户0123456789的第三个值可用额度
    print new_position
    pickle.dump(account_list,pkl_file)#使用pickle方法把字典account_list数据dump到pkl_file文件中
    pkl_file.close()#关闭文件

print account_list

#把程序分成不同.py文件模块,非常方便进行日后维护
recon('0123456789',450)#调用账户0123456789,消费金额450元
logger.record_log('0123456789',450,'NIKE shoes')#记录日志账户0123456789消费450元,购买NIKE shoes物品
root@kali:~/python/atmnew# 

3、日志文件

root@kali:~/python/atmnew# cat logger.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--

import time#导入时间模块
logfile = 'account.log'#定义要使用的日志文件account.log

#定义函数包括参数账户、花费、描述信息、利息(默认为0、取款、转账有手续费必须带参数值)
def record_log(account,expense,description,interest = 0):
    date = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())#取出当前时间
    record_line = "%s   '%s'    %s  %s\n" %(date,description,expense,interest)#记录当前消费时调用函数各个参数时间行为
    f = open(logfile,'a')#追加写入方式打开日志account.log
    f.write(record_line)#写入每行函数产生日志信息
    f.flush()#实时写入
    f.close()#关闭文件

root@kali:~/python/atmnew# 

4、待补充文件内容
root@kali:~/python/atmnew# cat account.pkl
root@kali:~/python/atmnew# cat account.log
1
root@kali:~/python/atmnew# cat pickle_test.py
1
root@kali:~/python/atmnew#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐为波

看着给就好了,学习写作有点累!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值