【发布时间】:2017-09-18 18:00:01
【问题描述】:
我有一个大文本文件(比我的 RAM 还多),我需要使用其中的每一行进行进一步处理。但是,如果我一次读到 4096 个字节,我担心会在两者之间的某处分割线。我该如何进行?
【问题讨论】:
-
您可以一次读取一个字符,直到偶然发现一个换行符(
\n或\r\n),然后将换行之前的数据写入另一个文件。 -
不会让处理速度慢很多吗?
-
或以块的形式读取数据并扫描这些数据以查找新行,然后查看该块是否以新行结尾。如果没有,并且要从文件中读取更多数据,请执行此操作并将新块与前一个块的其余部分连接起来。然后重复这个过程。
-
某些行是否超出了您可以用于此任务的内存大小?
-
如果是文本文件,一次读取一行,将每一行添加到列表中。您可以通过将每个字符的长度添加到累加器来跟踪已读取的字符数,但请事先检查是否该处理“块”。
标签: python file-handling