1

ここのコミュニティの助けを借りていくつかのコードを書くことができましたが、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')
4

2 に答える 2

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')
于 2012-06-27T17:04:46.980 に答える
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])
于 2012-06-27T17:13:14.457 に答える