python输入行数_Python中使用行数作为输入变量拆分大型文本文件的快速方法

只是用一个800万行文件(正常运行时间行)做了一个快速测试,以运行文件的长度并将文件分成两半。基本上,一次通过可以获得行数,第二次通过则可以进行拆分写入。在

在我的系统中,执行第一次通过运行所需的时间大约为2-3秒。要完成对拆分文件的运行和写入,所用的总时间不到21秒。在

没有在OP的post中实现lamba函数。使用的代码如下:#!/usr/bin/env python

import sys

import math

infile = open("input","r")

linecount=0

for line in infile:

linecount=linecount+1

splitpoint=linecount/2

infile.close()

infile = open("input","r")

outfile1 = open("output1","w")

outfile2 = open("output2","w")

print linecount , splitpoint

linecount=0

for line in infile:

linecount=linecount+1

if ( linecount <= splitpoint ):

outfile1.write(line)

else:

outfile2.write(line)

infile.close()

outfile1.close()

outfile2.close()

不,它不会赢得任何性能测试或代码优雅测试。:)但是除了性能瓶颈之外,lambda函数会导致文件在内存中缓存并导致交换问题,或者文件中的行非常长,我不明白为什么要花30分钟来读取/拆分800万行文件。在

编辑:

我的环境:macosx,存储是一个FW800连接的硬盘。文件是新创建的,以避免文件系统缓存的好处。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值