我正在从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]
'
正如您所看到的那样,当我按索引位置打印时,它会打印字符而不是列表中的实际位置(对象)
答案 0 :(得分: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'
查看json
或pickle
以了解更直观的数据存储方式。通常最好使用这些方法之一而不是实际存储原始字符串表示,因为客户端只需调用json.loads
而不必评估文本文件。