Python中如何将读取文本文件得到的列表转换为Entry类对象列表
解决方案
修改思路
- 每行按空格拆分后得到的是6个字符串元素的列表,需要先拼接姓名部分,再对账号、余额做类型转换
- 将处理后的参数按顺序传入
Entry构造方法生成实例,再存入结果列表 - 推荐用
with上下文管理器处理文件IO,无需手动写关闭逻辑,自动管理资源释放,避免异常场景下资源泄漏
完整修改后代码
class Entry: def __init__(self, account_num, name, balance, phone, city): self.account_num = account_num self.name = name self.balance = balance self.phone = phone self.city = city def read_file(file_given): entry_obj = [] # 用with语句自动处理文件关闭,指定编码避免乱码 with open(file_given, 'r', encoding='utf-8') as open_file: for line in open_file: # 跳过空行避免运行报错 line = line.strip() if not line: continue word = line.split() # 拼接姓名、转换对应字段类型后生成Entry实例 entry = Entry( account_num=int(word[0]), name=f"{word[1]} {word[2]}", balance=float(word[3]), phone=word[4], city=word[5] ) entry_obj.append(entry) return entry_obj
效果验证
你可以用如下代码测试返回结果:
if __name__ == '__main__': entries = read_file('你的文本文件路径.txt') # 打印第一个条目的信息验证解析结果 first_entry = entries[0] print(first_entry.account_num, first_entry.name, first_entry.balance)
内容的提问来源于stack exchange,提问作者Kuronome
相关产品推荐
相关产品推荐

