从python的csv阅读器订阅特定的行?

时间:2010-07-09 18:07:31

标签: python file-io csv

我希望能够通过csv阅读器访问csv文件的特定行。例如,第四行。有没有办法用python的csv阅读器模块做到这一点?

1 个答案:

答案 0 :(得分:4)

您只需要解析所有CSV文件,然后使用正常的测序索引。

否则,你可以做这样的事情

def my_filter(csv_file, lines):
   for line_number, line in enumerate(csv_file):
       if line_number in lines:
          yield line

my_file = open("file.csv")
my_reader = csv.reader(my_filter(my_file, (3,)))

请注意,您无法避免以某种方式或其他方式解析整个文件,因为这些行具有可变长度。行数仅在找到'\ n'时前进,并且必须逐个字符地找到它。

此外,如果您碰巧在csv文件中的引号内有换行符,则此过滤器将无效 - 可能您最好将整个文件解析为列表,并从那里检索索引,无论如何:< / p>

my_file = open("file.csv")
my_reader = csv.reader(my_file)
my_line = list(my_reader)[3]

<强>更新 最重要的是:如果您需要随机访问太大而无法容纳在内存中的信息,请考虑将其转储到SQL数据库中。它将使一个人重新发明很多轮子。