在CSV文件中获取特定范围的数据(Python)

在CSV文件中获取特定范围的数据(Python),python,csv,dictionary,Python,Csv,Dictionary,基本上,我想在这里做的是读取特定范围的数据(比如,10000个值),看看它是否包含我正在寻找的匹配项。如果它不包含该匹配项,那么它将抛出这些值并获取下一个10000 例如,如果我有MD5散列“FAC2A47Adace059AF113283A03F6760”(其值为stack),我将从CSV文件加载10000个值,并检查该行中的MD5散列是否与给定的散列匹配。如果是的话,我会打印出那行逗号后面的值,如果不是的话,我会把那10000个值从内存中抛出,然后取后面的10000个值,直到我得到一个值 对此

基本上,我想在这里做的是读取特定范围的数据(比如,10000个值),看看它是否包含我正在寻找的匹配项。如果它不包含该匹配项,那么它将抛出这些值并获取下一个10000

例如,如果我有MD5散列“FAC2A47Adace059AF113283A03F6760”(其值为stack),我将从CSV文件加载10000个值,并检查该行中的MD5散列是否与给定的散列匹配。如果是的话,我会打印出那行逗号后面的值,如果不是的话,我会把那10000个值从内存中抛出,然后取后面的10000个值,直到我得到一个值

对此道歉有点不清楚。。。我想不出一个非常清楚的方法来解释它。我目前的做法是通过JSON将一个包含所有字符组合(最多5个)的字典转储到一个文本文件中,并将其加载回内存中进行搜索,这对5个字符不起作用(抛出一个MemoryError)


提前感谢您的帮助,如果您需要澄清,请告诉我

假设匹配行看起来像“FAC2A47Adace059AF113283A03F6760,堆栈”,您基本上希望这样做:

for row in csv.reader(csvfile):
    if row[0] == "fac2a47adace059aff113283a03f6760":
        print row[1]
        break

如果散列不在第一列或预散列值不在第二列,请将[0]和[1]调整到正确的索引。

假设匹配行看起来像“FAC2A47Adace059AF113283A03F6760,堆栈”,您基本上希望这样做:

for row in csv.reader(csvfile):
    if row[0] == "fac2a47adace059aff113283a03f6760":
        print row[1]
        break

如果散列不在第一列或预散列值不在第二列,请将[0]和[1]调整到正确的索引。

您不能在行上迭代,直到找到匹配的行吗?如果它将整个文件加载到内存中,则肯定不会。因为这就是这里的问题:没有足够的RAM来放入整个文件。
csv
模块没有。
csv
模块是懒惰的,所以正如其他人所说,这是微不足道的。只要在
csv.reader()
上使用
for
循环,您就是金色的。比我预期的要简单得多。干杯但是,在找到匹配的散列之后,我如何获得解密的值呢?难道你不能在行上迭代,直到找到匹配的行吗?如果它将整个文件加载到内存中,那么肯定不会。因为这就是这里的问题:没有足够的RAM来放入整个文件。
csv
模块没有。
csv
模块是懒惰的,所以正如其他人所说,这是微不足道的。只要在
csv.reader()
上使用
for
循环,您就是金色的。比我预期的要简单得多。干杯但是,在找到匹配的散列之后,如何获得解密的值?