简而言之,我试图从文本文件中“提取”某些行(字符串)。但还有更多
我有一个相当大的文本文件(100000行,60MB)。有些数据块是重要的,有些则不是。其中有几百块。没有模式,一个停止,下一个不一定开始
我已经分析了文件以确定我感兴趣的行。现在,我有一个字典,其中包含“开始”行号作为键,以及随后所需的连续行数作为值。在这里:
paired_points =
{51: 7,
69: 67,
...
870623: 1730,
872364: 1801}
len(paired_points) =
783
我可以将其转换为显式的“开始”和“停止”整数(例如,51->;58、69->;136等),但这对我仍然没有帮助
我试图使用itertools中的islice,但它返回了一个islice对象列表
from itertools import islice
file = r'575852.roi'
f = open(file, "r")
a = list()
for key in paired_points:
with open(file) as f:
try:
a.append(islice(f, key, key + int(paired_points[key]))) # Start and stop lines
这在概念上是可行的,但我需要将islice对象转换为字符串。我的意思是,我正在从文本文件中查找行(字符串)列表
任何帮助都将不胜感激。提前谢谢你
解决方案
我自己解决了这个问题(将感兴趣的行转换为字符串,然后转换为浮点数组)。实际上,我还需要通过将文本行拆分为三个浮点值(与(X,Y,Z)坐标相关)来“清理”每一行。这是在构建字符串列表后,使用最后一行中的内置map()函数执行的
ext_pts现在是一个(X,Y,Z)点的Nx3 numpy数组
相关问题 更多 >
编程相关推荐