Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python fortran未格式化文件的字符编码?_Python_Character Encoding - Fatal编程技术网

Python fortran未格式化文件的字符编码?

Python fortran未格式化文件的字符编码?,python,character-encoding,Python,Character Encoding,我正在读一个fortran未格式化文件。如果我用Python来读入它们 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()的部分输出 您是否了解文件是如何编写的,即使用了哪些Fort

我正在读一个fortran未格式化文件。如果我用Python来读入它们

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()的部分输出


您是否了解文件是如何编写的,即使用了哪些Fortran
write
语句?如果不是,你只是在猜测。请记住,未格式化记录通常包含二进制数据,如整数或浮点数,而通常不包含编码字符数据。我猜你看到的是二进制整数。您还应该以二进制文件的形式在Python中打开该文件(
'rb'
)。这在Windows这样的平台上产生了不同

更新:现在您已经公开了数据的类型是real(8),allocatable::xxx(:)
,并且是用以下代码编写的:

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

很明显,数据是二进制的,而不是编码字符。

我认为我们需要查看实际文件的一部分。用语言a编写的字符与用语言B编写的相同字符不同吗?怎么用?不管怎样,你能在这里粘贴一些文件吗?或者在某个粘贴站点上?你确定你正在处理一个字符集吗?你有关于这种格式的文件吗?该文件通常用于什么?这个Fortran程序通常用于什么?
od-c
非常适合十六进制转储。我测试了它,它肯定不是任何ASCII兼容的编码,也不是EBCDIC。它也是无效的UTF-16,因为前两个字节将对应于代理项对。它也不是
hz
编码的。我认为它被压缩、混乱或损坏了。
write(filenum) (xxx(i),i = 1,imax)