代码迭代真的很慢,为什么?

时间:2012-06-27 17:01:12

标签: python hash iteration

我能够在社区的帮助下编写一些代码,但是我遇到了一个问题,我的python在迭代中运行并写出真的非常慢,因为我的其他脚本执行相同但完全相同但是一个人跑得超快,这个代码中有什么值得引起的吗?

with open('c:/file.sql') as inf, open('c:/file.txt','w') as outf:
    for i in xrange(47):
        inf.next()       

    for line in inf:
        data = line.split(',')
        if len(data) < 15:
            inf.next()
        elif len(data) > 35:      
            hash = data[13]
            select = hash[3:len(hash)-1]
            outf.write(select + '\n')

2 个答案:

答案 0 :(得分:3)

您的代码的较小版本:

from itertools import imap, islice
with open('c:/file.sql') as inf, open('c:/file.txt','w') as outf:
    for line in imap(str.strip, islice(inf, 47, None)):
        data = line.split(',')
        if len(data) > 35:
            hash = data[13]
            select = hash[3:-1]
            outf.write(select+'\n')

答案 1 :(得分:0)

所以考虑到评论......我想这可能是你想要的:

with open('c:/file.sql') as inf, open('c:/file.txt','w') as outf:
    for line in itertools.islice(inf, 47, None):
        data = line.split(',')
        if len(data) > 35:      
            outf.writeline(data[13][3:-1])