【发布时间】:2010-07-09 18:07:30
【问题描述】:
我希望能够通过 csv 阅读器访问 csv 文件的特定行。例如第四行。有没有办法用 python 的 csv 阅读器模块做到这一点?
【问题讨论】:
我希望能够通过 csv 阅读器访问 csv 文件的特定行。例如第四行。有没有办法用 python 的 csv 阅读器模块做到这一点?
【问题讨论】:
您只需解析所有 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 文件的引号内有换行符,则此过滤器将不起作用 - 无论如何,您最好将整个文件解析为列表,然后从那里检索索引:
my_file = open("file.csv")
my_reader = csv.reader(my_file)
my_line = list(my_reader)[3]
更新 最重要的是:如果您需要随机访问太大而无法放入内存的信息,只需考虑将其转储到 SQL 数据库即可。它将节省一个人重新发明很多轮子。
【讨论】: