在CSV文件中提取特定范围的数据(Python)
我想做的事情其实很简单,就是读取一段特定的数据(比如说,10,000个值),然后看看里面有没有我想要的匹配值。如果没有找到匹配的值,就把这些值丢掉,接着再读取下一组10,000个值。
举个例子,如果我有一个MD5哈希值“fac2a47adace059aff113283a03f6760”(这个值代表的是“stack”),我会从一个CSV文件中加载10,000个值,然后检查这一行的MD5哈希是否和我给定的哈希值匹配。如果匹配上了,我就打印出这一行中逗号后面的值;如果没有匹配上,就把这10,000个值从内存中丢掉,继续读取后面的10,000个值,直到找到一个匹配的值为止。
抱歉如果我说得不太清楚……我实在想不出更简单明了的解释方式。目前我做事情的方法是把所有字符组合(最多5个字符)放到一个字典里,通过JSON格式保存到文本文件中,然后再加载回来进行搜索,但这样处理5个字符时会出错(会出现内存错误)。
谢谢大家的帮助,如果需要进一步解释,请告诉我!
1 个回答
1
假设你要找的那一行看起来像这样:'fac2a47adace059aff113283a03f6760,stack',你基本上想要做的就是:
for row in csv.reader(csvfile):
if row[0] == "fac2a47adace059aff113283a03f6760":
print row[1]
break
如果你的哈希值不在第一列,或者你的预哈希值不在第二列,那就把[0]和[1]调整到正确的位置。