从Python中的文本文件导入三维列表变量

sco*_*nox 5 python variables import list

我需要知道我是否可以在文本文件中的声明中轻松地在我的脚本中分配变量.基本上,我希望用户能够通过文本文件更改变量,以匹配所需的数字,而不必动摇源代码.

文本文件输入格式:

faultInfo = [
             [["L1603",1,5],[271585,972739],[272739,872739, 272739,972739, 271585,972739, 271585,272389, 270999,272389]],
             [["L1605",1,5],[271897,872739],[272739,872739, 272739,972739, 271891,872739, 271891,272119, 270963,272119]],
             [["L1607",1,4],[271584,272738],[271584,272738, 271584,272388, 270998,272388, 270998,272386]]
            ]
Run Code Online (Sandbox Code Playgroud)

我只是想将它加载到我的脚本中具有相同名称的列表变量中.我是Python的新手,而不是CS专业或其他任何东西.我知道我可以使用循环和诸如此类的东西来加载3-D列表,但似乎应该有一个快速的方法来实现这一点,因为第k维的大小是锯齿状的,并且会随着时间的推移而变化.

提前致谢.

谢谢

mgi*_*son 2

该数据看起来很简单,您可以使用 或 来解析它json.loadsast.literal_eval两者都在标准库中):

>>> a = """[
...              [["L1603",1,5],[271585,972739],[272739,872739, 272739,972739, 271585,972739, 271585,272389, 270999,272389]],
...              [["L1605",1,5],[271897,872739],[272739,872739, 272739,972739, 271891,872739, 271891,272119, 270963,272119]],
...              [["L1607",1,4],[271584,272738],[271584,272738, 271584,272388, 270998,272388, 270998,272386]]
...             ]
... 
... """
>>> import ast
>>> ast.literal_eval(a)
[[['L1603', 1, 5], [271585, 972739], [272739, 872739, 272739, 972739, 271585, 972739, 271585, 272389, 270999, 272389]], [['L1605', 1, 5], [271897, 872739], [272739, 872739, 272739, 972739, 271891, 872739, 271891, 272119, 270963, 272119]], [['L1607', 1, 4], [271584, 272738], [271584, 272738, 271584, 272388, 270998, 272388, 270998, 272386]]]
>>> import json
>>> json.loads(a)
[[[u'L1603', 1, 5], [271585, 972739], [272739, 872739, 272739, 972739, 271585, 972739, 271585, 272389, 270999, 272389]], [[u'L1605', 1, 5], [271897, 872739], [272739, 872739, 272739, 972739, 271891, 872739, 271891, 272119, 270963, 272119]], [[u'L1607', 1, 4], [271584, 272738], [271584, 272738, 271584, 272388, 270998, 272388, 270998, 272386]]]
Run Code Online (Sandbox Code Playgroud)

您可以轻松地从以下位置获取字符串(a在我的示例中)file.read()