2016-06-02 3 views
2

私はファイルを読むはずのpythonスクリプトを持っています。問題は、そのファイルが非常に大きいので、私のスクリプトは、前の行に関連する情報が含まれていないので、650000行以降の行だけを読むべきだと決めました。ファイルの特定の部分のみを変更します。

eofまで650000行だけを変更する方法はありますか?たとえば、i read()の場合、このファイルのみが表示されますか?

+0

私はこれを助けると思う:http://stackoverflow.com/questions/15644859/how-to-read-specific-part-of-large-file-in-python – mastazi

答えて

2

ファイルは行指向ではなく、バイトブロックです。

最初の650,000行を構成するバイト数を把握するために、データを読み込むのに手間がかからないので、それらをスキップするために行う必要があります。

特定のオフセットでファイルを修正することは可能ですが、オフセットはファイルで使用されるアドレス指定単位のバイト数で表されます。

スキップラインを簡単に十分に行うことができます。

with open("myfile.txt", "w+t") as f: 
    for i in xrange(650000): 
    f.readline() # Read a line and throw it away 
    f.write("hello") 

これはhello後にデータが存在しないであろうようにファイルを切り詰める(しかし65万ライン、その前に、もちろん)します。

+0

もし私がそれを行い、 'f .write() 'did' f.read() 'それはファイルの残りの部分を読みますか? –

関連する問題