如何读取列表的文本文件并附加到列表列表中?

时间:2017-04-27 17:20:21

标签: python list

我当前的代码看起来像这样:

componentDidMount() {
  if (this.props.params.brand) {
    // this is a redux action dispatch
    this.props.setBrandFilter(this.props.params.brand);
  }
}

当我打印a_list时,列表我得到了这个:

a_list = []
with open("lists.txt", "r") as f:
    for line in f:
        a_list.append(line)

我希望得到的是:

[['["David", 45, 102, 7.5, 0, 17.5, 106, 139, 8.5]', ''],
 [['["Phil", 45, 102, 7.5, 0, 17.5, 106, 139, 8.5]', '']...

编程语言是python 任何想法?

3 个答案:

答案 0 :(得分:1)

你必须使用名为ast的软件包。请在代码段后尝试以下操作:

import ast

final_list = [ast.literal_eval(j) for i in a_list for j in i] 

您的txt文件已将列表转换为str,上面提到的包有点像exexute。有空的时候随意阅读。 希望它有所帮助!

答案 1 :(得分:0)

每当我们在文本文件中写入任何内容时,其数据结构只会转换为字符串类型。 因此,当我们加载/打开我们的文本文件并希望保留我们在文件中编写/存储的原始数据结构时,我们需要使用 ast模块 / ****升_eval内置函数ast ** **。

from ast import literal_eval
file_object= open('lists.txt')
output_list=[]
for line in file_object:
    line=line.strip('\r\n')
    output_list.append(literal_eval(line))
print output_list

答案 2 :(得分:0)

这看起来像一个包含许多JSON文档的文件,每行一个。您可以使用json模块阅读它:

import json

a_list = []
with open("lists.txt", "r") as f:
    for line in f:
        a_list.append(json.loads(line))

为什么不是ast模块? 这种情况没有理由,但ast加载 Python文字(文字可以表示字符串,数字,词组和元组。

但是JSON完全是另一回事,虽然表面上看起来都很相似,但是对于更复杂的数据(例如Unicode),差异会非常明显。