python快速读取一个大文件内容(瞎猜)
澳门新葡京官网
澳门新葡京官网
当前位置 : 澳门新葡京官网 > 澳门新葡京官网

python快速读取一个大文件内容(瞎猜)

问题:

    python有没有一种方法是比简单的readlines方法更快的方式去读取单个文件,比如,一个从头读文件,一个从尾部读文件,再或者预先将一个文件的行索引分成几个部分来读(文件行内容的操作顺序不重要)。

纯属瞎猜,google貌似找不到关键字。多谢不吝赐教

下面是我自己根据multiprocess瞎写的一个脚本,但是会比for循环慢很多(感觉有一个进程在一个cpu croe上占用太多cpu时间)

#_*_ encoding: utf-8 _*_

Created on 2016-05-10 12:35:29

@author: han

import time
from multiprocessing import Pool


def for_seprateone_list:
    # result_file = openresult.txt, a
    tmp = []
    for x in one_list:
        tmp.appendx
    # printone_list

def main:
    with opendata.txt, r as f:
        line = f.readlines
        #将列表分成多少份
        num_of_part = 1000
        line_part = lenline / num_of_part
        P = Pool

        if line_part * num_of_part == lenline:
            #
            line_start = 0
            line_end = line_part
            while line_end <= lenline:
                line_copy = line[line_start:line_end]
                #
                # testtime = time.time
                P.apply_asyncfor_seprate, args=line_copy,  
    #             printline_start : {}
    # line_end : {}
    # line_copy : {}.formatline_start, line_end, line_copy
                # printtestendtime : {}.formattime.time - testtime
                line_start = line_end
                line_end = line_end + line_part
        P.close   #关闭不再产生子进程
        P.join    #等待子进程结束
        # printAll subprocess done.

if __name__ == __main__:
    StartTime = time.time
    main
    printUseTime : {}.formattime.time - StartTime

新手还请不吝赐教。

with语言支持迭代器方式读取大文件。

with openfile_path, w as f:
    for line in f:
        handlerline

你可以尝试多线程
参考这里

栏目列表

广告位

澳门新葡京官网