【发布时间】:2019-10-09 00:54:53
【问题描述】:
我只想从 csv 文件中的某一行开始读取一定数量的行而不是迭代整个 csv 文件以达到这一点。
假设我有一个包含 100 行的 csv 文件,我只想读取第 50 到 60 行。我不想从第 1 行迭代到第 49 行以到达第 50 行开始读取。我可以通过 seek() 以某种方式实现这一点吗?
例如: 寻找第 50 行 从 50 读到 60
下次: 寻找第 27 行 读 27 到 34 等等
因此,不仅在文件中不断向前搜索,而且还向后搜索。
非常感谢
【问题讨论】:
-
可以使用外部库吗?
-
因为它是 csv 我假设它是字符。每行是否总是相同数量的字符?你总是有相同的行分隔符吗?
-
要跳过读取整个文件并读取特定行,这些行必须是固定长度的。如果不计算文件中的每个换行符直到你想要的行,那么如何知道你在哪一行,这意味着从头开始读取整个文件。 CSV 是 20gb 文件的错误格式。将其转换为数据库。
-
也许我遗漏了一些东西,但是如果不阅读之前的文件部分就不可能找到你想要的行吗?编辑:除非如上述评论所说,这些行的长度是提前已知的。这不是这里的情况。