python读什么文件最快的软件_Python读取大文本文件(几GB)的最快方法

1586010002-jmsa.png

i have a large text file (~7 GB). I am looking if exist the fastest way to read large text file. I have been reading about using several approach as read chunk-by-chunk in order to speed the process.

at example effbot suggest

# File: readline-example-3.py

file = open("sample.txt")

while 1:

lines = file.readlines(100000)

if not lines:

break

for line in lines:

pass # do something**strong text**

in order to process 96,900 lines of text per second.

Other authors suggest to use islice()

from itertools import islice

with open(...) as f:

while True:

next_n_lines = list(islice(f, n))

if not next_n_lines:

break

# process next_n_lines

list(islice(f, n)) will return a list of the next n lines of the file f. Using this inside a loop will give you the file in chunks of n lines

解决方案with open() as FileObj:

for lines in FileObj:

print lines # or do some other thing with the line...

will read one line at the time to memory, and close the file when done...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
感谢您的问题,我会尽力回答。 针对您提出的问题,这是一个比较复杂的任务,需要一些技巧和策略来实现。以下是一些可能有用的技巧和策略。 1. 把文件拆分成小块 由于内存只有2GB,无法一次性将10GB文件入内存中进行处理。为了解决这个问题,我们可以将文件拆分成多个小块,每个小块的大小适合内存。例如,可以将文件分为10个1GB的小块,每次入一个小块进行处理,然后将结果存储到磁盘上,最后合并结果。 2. 使用哈希表进行去重 一种快速的去重方法是使用哈希表。我们可以将每个文件中的每一行都哈希,并将哈希值存储在哈希表中。如果两个文件的哈希值相同,则它们很可能是相同的行,需要进行去重处理。但是,由于哈希冲突的存在,有可能会有误判。为了尽量减少误判,可以使用一些去重算法,如MinHash算法、Bloom Filter等。 3. 排序后进行去重 如果文件已经排序,可以使用归并排序的思想将两个文件合并。具体而言,我们可以从两个文件读取两行进行比较,如果相同则只保留一份,否则将较小的行保存到结果文件中。由于文件已经排序,我们只需要将当前行与下一行进行比较即可,无需将整个文件入内存中。 综上所述,以上是一些可能有用的技巧和策略。当然,具体实现还需要根据实际情况进行调整和优化。希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值