用Python写文本文件

简易银行系统,将里面的注册和登录功能(之前放在字典中),改写成文件类型(将用户名,余额,密码全部放在文件之后)

如果一定要文本, 看数据i情况, 一个客户一行的方式来解决, 可以考虑用json 格式。

同上,如果一定要文本,一行一个客户,不同的信息以空格隔开,使用的时候split一下。可以参考下面的代码:

from faker import Faker

faker_info = {}
fake = Faker(locale='zh_CN')
# 生成一些随机的数据,不用去管
for i in range(0,10):
    faker_info[fake.name()] = {
        "address":fake.address(),
        "ban_account":fake.bban(),
        "company":fake.company(),
    }
# 写入
with open('./info.txt','a+',encoding='utf-8') as f:
    res = []
    for name,values in faker_info.items():
        data = '' + name + ' '
        data += ' '.join(values.values()) + '\n'
        res.append(data)
    f.writelines(res)
f.close()

# 使用
with open('./info.txt', 'r', encoding='utf-8') as f:
    data_list = f.readlines()
    for data in data_list:
        name,address,zip_code,ban_account,company = data.split(' ')
        print(name,address,zip_code,ban_account,company)

另外给几个建议,如果一定文件形式存下来,可以考虑存到表格里面去,或者使用json文件存储。代码参考如下:

# # 写入json
with open('./info.json', 'a+', encoding='utf-8') as f:
    f.write(json.dumps(faker_info, ensure_ascii=False))
f.close()

# 写入表格
from openpyxl import Workbook

wb = Workbook()
ws = wb.active
# 写表头
ws.cell(1, 1).value = "姓名"
ws.cell(1, 2).value = "地址"
ws.cell(1, 3).value = "银行账户"
ws.cell(1, 4).value = "公司"
# 写数据
for index,name in enumerate(faker_info.keys()):
    print(index,name)
    ws.cell(2 + index, 1).value = name
    for index2,value in enumerate(faker_info[name].values()):
        print(index2,value)
        ws.cell(2 + index, index2 + 2).value = value
wb.save('./info.xlsx')