将数字数据(保存在文本文件中)读入 python 的正确方法是什么?
What is the proper way to read numeric data (saved in a text file) into python?
我有一些补丁的坐标信息需要保存以供进一步处理。我将坐标(列表)保存到文件 patch_info.txt
中,一个文件的数据是这样的,我将每个 mat 文件的信息追加到文本文件中的 for 循环中:
[[117, 90, 75, 102, 105, 132],
[117, 83, 68, 102, 98, 132],
[117, 82, 67, 102, 97, 132],
[116, 73, 58, 101, 88, 131],
[115, 67, 52, 100, 82, 130],
[112, 129, 114, 97, 144, 127],
[110, 97, 82, 95, 112, 125],
[109, 55, 40, 94, 70, 124],
[102, 93, 78, 87, 108, 117],
[99, 134, 119, 84, 149, 114],
[96, 117, 102, 81, 132, 111],
[96, 72, 57, 81, 87, 111],
[82, 126, 111, 67, 141, 97],
[78, 110, 95, 63, 125, 93]],
'labels-001-012.mat']
我使用以下代码将它们再次读入 python:
patch_info=[]
with open('patch_info.txt') as f:
for line in f.readlines():
line=line.strip('\n')
patch_info.append(ast.literal_eval(line))
我的问题是有些用户不建议使用ast.literal_eval
,将数据的数字列表读入python的最佳方法是什么?
如果你能把textfile中的数据格式化为json数据,那么你就用json.load
来解析数据。这比使用 ast.literal_eval
要好得多
如果您的数据尚未格式化,您可以使用 sed
/awk
或类似的东西进行一些预处理,将其转换为所需的 json 格式
例如,考虑名为 test.data
的文件中的以下数据
[
[1,2],
[6,7],
[1,2],
[6,7],
[1,2],
[6,7],
[1,2],
[6,7],
[1,2],
[6,7]
]
然后你可以通过
将它们加载到python
>>> with open('test.data2', 'r') as f:
... data = json.load(f)
...
>>> data
[[1, 2], [6, 7], [1, 2], [6, 7], [1, 2], [6, 7], [1, 2], [6, 7], [1, 2], [6, 7]]
>>>
我有一些补丁的坐标信息需要保存以供进一步处理。我将坐标(列表)保存到文件 patch_info.txt
中,一个文件的数据是这样的,我将每个 mat 文件的信息追加到文本文件中的 for 循环中:
[[117, 90, 75, 102, 105, 132],
[117, 83, 68, 102, 98, 132],
[117, 82, 67, 102, 97, 132],
[116, 73, 58, 101, 88, 131],
[115, 67, 52, 100, 82, 130],
[112, 129, 114, 97, 144, 127],
[110, 97, 82, 95, 112, 125],
[109, 55, 40, 94, 70, 124],
[102, 93, 78, 87, 108, 117],
[99, 134, 119, 84, 149, 114],
[96, 117, 102, 81, 132, 111],
[96, 72, 57, 81, 87, 111],
[82, 126, 111, 67, 141, 97],
[78, 110, 95, 63, 125, 93]],
'labels-001-012.mat']
我使用以下代码将它们再次读入 python:
patch_info=[]
with open('patch_info.txt') as f:
for line in f.readlines():
line=line.strip('\n')
patch_info.append(ast.literal_eval(line))
我的问题是有些用户不建议使用ast.literal_eval
,将数据的数字列表读入python的最佳方法是什么?
如果你能把textfile中的数据格式化为json数据,那么你就用json.load
来解析数据。这比使用 ast.literal_eval
要好得多
如果您的数据尚未格式化,您可以使用 sed
/awk
或类似的东西进行一些预处理,将其转换为所需的 json 格式
例如,考虑名为 test.data
的文件中的以下数据[
[1,2],
[6,7],
[1,2],
[6,7],
[1,2],
[6,7],
[1,2],
[6,7],
[1,2],
[6,7]
]
然后你可以通过
将它们加载到python>>> with open('test.data2', 'r') as f:
... data = json.load(f)
...
>>> data
[[1, 2], [6, 7], [1, 2], [6, 7], [1, 2], [6, 7], [1, 2], [6, 7], [1, 2], [6, 7]]
>>>