将txt文件作为列表而不是python中的字符串读取

时间:2018-04-29 05:09:13

标签: python io

我有一个由以下格式的行组成的文件: -

[123, something, some other thing, "text that i want", more details]

例如: -

[1393349463, u'Tue Feb 25 17:31:03 +0000 2014', 438365537261735936, u'A Falcon character poster for Captain America: The Winter Soldier has swooped in', [], [u'totalfilm'], [u'//1bJdCJ2'], [u'http://pbs.twimg.com/media/BhViUNICQAAoBue.jpg'], 369, 362]

现在我想把它作为列表直接读入python而不是字符串,然后将字符串拆分,然后将其连接回来,因为文本部分可以有一个','而且我不想分开它。

我正在寻找类似的东西:

with open("input.txt") as fp:
   for line in fp:
       corpus.append(line[3]) #read only text

1 个答案:

答案 0 :(得分:1)

显然只需调用print Python列表(或在其上调用strrepr)即可生成您的输入。

可以使用literal_eval

来处理此特定示例
with open("input.txt") as fp:
    for line in fp:
        obj = ast.literal_eval(line)
        corpus.append(obj[3])

但是,这对一般的所有Python列表显示都不起作用。当它不起作用......好吧,你一般都做不了多少。但是你可以literal_eval直到你收到错误,然后,对于每个错误,费力地计算如何预处理事情以解决它。

正确的要做的事情就是生成实际可解析的输出,比如JSON,然后你可以简单地解析它。