我有一个大约100Mb的文件,看起来像这样:
#meta data 1
skadjflaskdjfasljdfalskdjfl
sdkfjhasdlkgjhsdlkjghlaskdj
asdhfk
#meta data 2
jflaksdjflaksjdflkjasdlfjas
ldaksjflkdsajlkdfj
#meta data 3
alsdkjflasdjkfglalaskdjf
此文件包含一行元数据,该行与仅包含字母数字字符的多个可变长度数据相对应。将这些数据读入这样一个简单列表的最佳方法是:
^{pr2}$我最初的想法是使用read()
方法将整个文件读入内存,然后使用正则表达式将数据解析为所需的格式。有没有更好的Python式的方法?所有元数据行都以octothorpe开头,所有数据行都是字母数字。谢谢!在
我猜是这样的:
未经测试。在
我不知道这是否是最快的方法,但从我的头脑中:
itertools.groupby提供了一种将行收集到组中的简单方法:
收益率
^{pr2}$表达式
返回迭代器。它循环遍历}。在
f
中的行,并在每一行上调用lambda
函数。当遇到以#meta
开头的行时,该函数返回True
,否则返回{itertools.groupby
收集返回相同值的所有连续行。在因此,以
#meta
开头的行放在它自己的组中,然后所有不以#meta
开头的行放在下一个组中,依此类推。在key
是lambda
函数的返回值。在本例中,它将是True
或{相关问题 更多 >
编程相关推荐