python - 如何在Python中将文件的行读取为列表而不是字符串

标签 python python-3.x tree

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

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

如果我将其复制并粘贴到我的程序中,它就会明白这是一个列表,我可以轻松地操作它来查找根和子项,然后获取这些子项并找到它们的子项,等等。逐行文件,它会将这些行转换为字符串。如果我尝试将这些字符串转换为列表,那么字符串中的每个单独字符都会成为列表中的不同项目,而这不是我想要的。

我只是想知道如何逐行读取文件,但它不是吐出字符串,而是以文字列表形式提供每一行。我正在读取的文件是一个 .txt 文件,它必须保持这种状态,我无法将其另存为 .py 文件或类似文件。

最佳答案

尝试 ast 模块:

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

关于python - 如何在Python中将文件的行读取为列表而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43623444/

相关文章:

python - 程序不按字母顺序将列表输出写入文件

python ssl问题打开证书文件

python - python26 的 sqlite 版本

Python:如何在不重复元组内容的情况下生成元组列表的所有组合

python - 使用 mpldatacursor 时如何更改数据光标的内容

java - 将 4 个列表合并为一个的最佳方式

java - Java中如何遍历树并在一定深度打印注释?

python - json.dumps 抛出 UnicodeDecodeError

python-3.x - 如何检查 Pandas 行是否包含列表的任何完整字符串或子字符串?

tree - Setf(?)导致树中的循环