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_seprate(one_list):

# result_file = open('result.txt', 'a')

tmp = []

for x in one_list:

tmp.append(x)

# print(one_list)

def main():

with open('data.txt', 'r') as f:

line = f.readlines()

#将列表分成多少份

num_of_part = 1000

line_part = len(line) / num_of_part

P = Pool()

if line_part * num_of_part == len(line):

#

line_start = 0

line_end = line_part

while line_end <= len(line):

line_copy = line[line_start:line_end]

#

# testtime = time.time()

P.apply_async(for_seprate, args=(line_copy,))

# print('''line_start : {}

# line_end : {}

# line_copy : {}'''.format(line_start, line_end, line_copy))

# print('testendtime : {}'.format(time.time() - testtime))

line_start = line_end

line_end = line_end + line_part

P.close() #关闭不再产生子进程

P.join() #等待子进程结束

# print('All subprocess done.')

if __name__ == '__main__':

StartTime = time.time()

main()

print('UseTime : {}'.format(time.time() - StartTime))

新手还请不吝赐教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值