2011-11-15 9 views
0

私はFortranフォーマットされていないファイルを読んでいます。私は、Pythonを使用している場合 Fortranフォーマットされていないファイルの文字エンコーディング?

import struct 
f = open(filename,'r') 
values = struct.unpack('%20s',f.read(20)) 

は私がXF8、\ XBF、\ XAD、\ xe8、\ xd8、\ XEC、\ XD5、\ X10 \ XFD \

のような文字を取得し、それらを読むために、\ xbf

など。これらはそれぞれ長さが1であり、文字列置換関数が機能しません。

私はどのような文字セットを扱っていますか? f.read()の部分的な出力貼り付け

編集

\xdf\xde#\xc0|\x18B\x9f\xec\xd6!\xc0]\x0b\x08b\xb1k#\xc0R#g}\xae\x14\xe8?\xde\x1c\x84b\x07S\xe8?.\x0b\x15\x07\xae\x99\xc5\xbf\xac\x9c\xa4\xf0\x8aV\xe4?K\t\x8a(3/\[email protected]\x97]rW\x8e?\[email protected]\xe8\xfe\x9f0\x92P\[email protected]\xc6&\x98-VV\[email protected]\xa2\x8e\x86\xa8\xf2-\[email protected]\xca\xa6\xc9\xe3W\[email protected]\x1f\x96\x0f\xb2\nH\[email protected]\xc31Jv\xf8\x98\[email protected]\xacOBu\xcf\xd6'@A\xf0\x9fJ\x84{(@\x1d`.N\x9b\x15'@4\xa5\xb2\x91)\xd3'@\x851\x9d\x83\x98\x00\x02\xc0\xa2Iy\x1b\xca\xf2\x04\xc0eu\rt\xb2\xd5\x04\xc0V\x92\xaf\x9f\xf6\xbd\x02\xc0:\r\xfc\xc6\xf8\xfb\xae\xbf!\x95QZ\xcdx\xe7\xbf\x8e\xd9O\xdf\xd1\xc0\xe4?\xbe\xba\xae\xa5\xb3\x9e\xac\xbfJ0h('=\xf0?\x83\xd67\xcf\n4\xe0?$\xf9\x0c\x00\x05\xe5\xfc?\x97+c\x9d\xd1\xf0?V\xfc\xc8\xe4\x12\x98\xf3?m\x8aa\xc4\xe5}\xf8?s\x9b\xb4{\xf22\[email protected]\xc3t'\xd0-\xdc\xf5?\xf9\x8eb&Y\x7f\x0c\xc0\x8c\x91\xa7\xe2\xf0|\x0c\xc0d\xd3b\x1a_\x05\x06\xc0u\xa7\x9b\x8e\xcc\xaa\x0b\xc0\xe7\x8a0CG+\x0f\xc0s\x10\x07\x8f 
+0

これはFortranと何が関係していますか?これは純粋にPythonの問題です。 – Rook

+0

はい、しかし、それらがFortranによって生成されたことを示している可能性を絞り込むことができますか? – hatmatrix

+2

私は実際のファイルの塊を見る必要があると思います。 –

答えて

2

あなたは、Fortran writeステートメントを使用した、すなわちどのような、ファイルが書き込まれた方法上の任意の情報を持っていますか?そうでなければ、あなたはただ推測するだけです。フォーマットされていないレコードには通常、整数や浮動小数点数などのバイナリデータが含まれ、通常はエンコードされていない文字データは含まれません。私の推測では、バイナリ整数を見ています。また、バイナリファイル('rb')としてPythonでファイルを開く必要があります。それはWindowsのようなプラットフォームに違いがあります。

更新:今、あなたは、データがreal(8), allocatable :: xxx(:)を入力し、と書かれていたことが開示されていること:

write(filenum) (xxx(i),i = 1,imax) 

それはデータがバイナリとエンコードされていない文字であることは明らかです。

関連する問題