【问题标题】:Reading multiple types from a file从文件中读取多种类型
【发布时间】:2021-02-13 15:03:48
【问题描述】:

这是我的文本文件

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

任何帮助都会非常感谢

【问题讨论】:

标签: python file types tuples


【解决方案1】:

这是你想要的吗?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多