python - 从文件中读取多种类型
问题描述
所以这是我的文本文件
player_basic, [10, 1, "SCISSOR", True]
Enemy3, [10, 1, "SCISSOR", True]
Enemy2, [10, 1, "PAPER", True]
Enemy1, [10, 1, "ROCK", True]
我的代码创建了文件中的行列表(减去第一行),但每行只有一个字符串。我想不出一种方法将每一行更改为具有不同类型的元组。
num_enemys = 0
def initialize_enemy(num_enemys):
data_list = []
data = open("test.txt", "r")
raw_data_list = data.readlines()
for line in raw_data_list:
line.replace('\'', '')
data_list.append(line)
data.close()
data_list.pop(0)
return data_list[num_enemys:]
任何帮助都会非常感谢
解决方案
这是你想要的吗?
num_enemys = 0
def initialize_enemy(num_enemys):
data_list = []
data = open("test.txt", "r")
raw_data_list = data.readlines()
for line in raw_data_list:
line = line.replace('\'','').replace('[', '').replace(']','').replace('"','')
lis = []
for ele in line.split(',')[1:]:
if ele.strip().isdigit():
lis.append(int(ele.strip()))
elif ele.strip() in ['True','False']:
lis.append(bool(ele.strip()))
else:
lis.append(ele.strip())
data_list.append((line.split()[0].strip(','),lis))
data.close()
data_list.pop(0)
return data_list[num_enemys:]
输出:
[('Enemy3', [10, 1, 'SCISSOR', True]), ('Enemy2', [10, 1, 'PAPER', True]), ('Enemy1', [10, 1, 'ROCK', True])]
推荐阅读
- java - PostMapping 的问题 - GetMapping 方法 - 链接中的循环。SpringBoot
- python - 如何重复/循环代码以使其多次运行,直到我要求它停止?
- javascript - 从全局变量节点js分配局部变量
- java - 解密时出现随机 IllegalBlockSizeException
- list - 生成列表的所有排列,包括不同大小和重复元素
- amazon-web-services - 如何从返回固定响应的 CloudFormation 创建 AWS LB 侦听器?
- java - java.lang.NoClassDefFoundError: cucumber/api/formatter/Formatter 运行 .feature 文件
- osrm - OSRM 提取静默失败
- javascript - 复制没有某些字段的状态对象
- python - 将数据框转换为所需的格式