[解決済み] Pythonでバイナリファイルを読み込む
2022-03-02 19:11:40
質問
Pythonでバイナリファイルを読むのが特に難しいです。手を貸していただけませんか? 私はこのファイルを読む必要があります。
int*4 n_particles, n_groups
real*4 group_id(n_particles)
read (*) n_particles, n_groups
read (*) (group_id(j),j=1,n_particles)
詳しく言うと、ファイル形式は
Bytes 1-4 -- The integer 8.
Bytes 5-8 -- The number of particles, N.
Bytes 9-12 -- The number of groups.
Bytes 13-16 -- The integer 8.
Bytes 17-20 -- The integer 4*N.
Next many bytes -- The group ID numbers for all the particles.
Last 4 bytes -- The integer 4*N.
Pythonでこれを読むにはどうしたらいいのでしょうか?いろいろ試したのですが、うまくいきません。Pythonでf90プログラムを使って、このバイナリファイルを読み込んで、必要なデータを保存することはできないのでしょうか?
どのように解決するのですか?
バイナリファイルの内容をこのように読み取ります。
with open(fileName, mode='rb') as file: # b is important -> binary
fileContent = file.read()
でバイナリデータを解凍します。 構造体.unpack :
開始バイトです。
struct.unpack("iiiii", fileContent[:20])
本文:先頭のバイトと末尾のバイトは無視する(=24);残りの部分が本文となるので、本文のバイト数を知るには4で整数を割る;得られた商に文字列
'i'
で、unpackメソッドに適した形式を作成します。
struct.unpack("i" * ((len(fileContent) -24) // 4), fileContent[20:-4])
エンドバイトです。
struct.unpack("i", fileContent[-4:])
関連
-
PythonによるLeNetネットワークモデルの学習と予測
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
python call matlab メソッドの詳細
-
Python百行で韓服サークルの画像クロールを実現する
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない
-
[解決済み] バイトを文字列に変換する
-
[解決済み] バイナリファイルの読み込みと各バイトのループ処理