2016-06-12 8 views
0

Python 3.5を使用してバイナリファイルとして書き込まれた時系列データを開きたいと思います。バイナリファイルの先頭にあるバイトをスキップするには、どうすればopen()を取得できますか?

filename = 'dummy.ats' 
file = open(filename, 'rb') 

をバイナリファイルには、私はスキップしたいと思います1024バイトのヘッダで始まります。ここでは

は、私がこれまで書いたスクリプトです。これを行うためにスクリプトを変更するにはどうすればよいですか?

+4

何を試しましたか?適切なバイト数を 'read 'して結果を破棄するのではなく、使用したい部分の先頭に' seek'するのはなぜですか? – jonrsharpe

+0

お返事ありがとうございます!私は 'seek()'について知らなかった:私はこのメソッドを使ってみよう。 – Sheldon

答えて

2

ファンクションseek()を使用すると、ファイル内の任意の位置にカーソルを移動できます(このカーソルは、読んだときに自動的に前方に移動します)。

それは次のように動作します。

file.seek(how many positions you will move[,0 or 1 or 2]) 

は -

  • 0(またはos.SEEK_SET)([] <はオプションを意味する):あなたの基準点は、ファイルの先頭であることを意味し
  • 1(またはos.SEEK_CUR):参照ポイントが現在のファイル位置であることを意味します。
  • 2(またはos.SEEK_END):「あなたの基準点は、ファイル

の終わりであることを意味しかし、あなたはそれを省略することができますし、そこから読み込まれた場合、それは0

filename = 'dummy.ats' 
file = open(filename, 'rb') 
file.seek(2) 

でしょう、あなた2文字目から読む

+1

あなたの素早い返答、Hearnerありがとう!これは私の問題を解決しました! – Sheldon

関連する問題