如何在python中读取文件的行而不是字符串

时间:2017-04-26 01:21:16

标签: python python-3.x tree

我有一个文件,其中每一行都是树的列表表示。例如,文件中的其中一行是:

[1, [[2,[]], [3, [ [5,[]], [6, [ [10,[]] ] ] ]], [4, [ [7,[]], [8,[]], [9,[]] ]] ]]

如果我将其复制并粘贴到我的程序中,它会理解它是一个列表,我可以轻松地操作它以找到根和孩子,然后带走那些孩子并找到他们的孩子等。当我读到一个逐行放置文件,它将这些行转换为字符串。如果我尝试将这些字符串转换为列表,那么它会将字符串中的每个字符作为列表中的不同项,这不是我想要的。

我只是想知道如何逐行读取文件,而不是吐出字符串,它给了我文字列表形式的每一行。我正在阅读的文件是.txt文件,它必须保持这种方式我不能将其保存为.py文件或类似的东西。

1 个答案:

答案 0 :(得分:2)

尝试ast模块:

>>> s = "[1, [[2,[]], [3, [ [5,[]], [6, [ [10,[]] ] ] ]], [4, [ [7,[]], [8,[]], [9,[]] ]] ]]"
>>> l = ast.literal_eval(s)
>>> l[0]
1