从文本文件中读取时,列表不被识别为列表

问题描述 投票:0回答:1

我正在从一个txt文件中读取列表,但当我将它们读回并保存到变量时,Python识别它有一个字符串而不是列表。有没有办法解决?

def makereport():
    with open('quizdb','r') as quizdata:
        for line in quizdata:
            print(line)
            print(line[1])

输出:

['maths(easy).txt', 'joh17', 'C', 0.0, 0]
'

正如您在索引位置打印时所看到的那样,它打印的是字符,而不是列表中的实际位置(对象)

python python-3.x list
1个回答
1
投票

您不能从字符串以外的文件中读取任何内容。你需要使用python库,比如ast

>>> ast.literal_eval("['maths(easy).txt', 'joh17', 'C', 0.0, 0]")
['maths(easy).txt', 'joh17', 'C', 0.0, 0]

这会将字符串解释为实际的list,您可以在其中访问索引:

>>> ast.literal_eval("['maths(easy).txt', 'joh17', 'C', 0.0, 0]")[0]
'maths(easy).txt'

查看jsonpickle以获得更直观的数据存储方式。通常最好使用这些方法之一而不是实际存储原始字符串表示,因为客户端可以简单地调用json.loads而不必评估您的文本文件。

© www.soinside.com 2019 - 2024. All rights reserved.