首页 > 解决方案 > 从文件中读取多种类型

问题描述

所以这是我的文本文件

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:]

任何帮助都会非常感谢

标签: pythonfiletypestuples

解决方案


这是你想要的吗?

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])]

推荐阅读