gpt4 book ai didi

python - Python 和 .NET 之间二进制文件的兼容性

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:39 25 4
gpt4 key购买 nike

Python 可以读取 .NET 程序创建的二进制文件,反之亦然吗?

哪些数据类型与之兼容?

VB.NET 程序示例:

Sub Main()
Using writer As New System.IO.BinaryWriter( _
System.IO.File.Open("Test.bin", IO.FileMode.Create))
writer.Write(True)
writer.Write(123)
writer.Write(123.456)
writer.Write(987.654D)
writer.Write("Test string.")
End Using
Using reader As New System.IO.BinaryReader( _
System.IO.File.Open("Test.bin", IO.FileMode.Open))
Console.WriteLine(reader.ReadBoolean())
Console.WriteLine(reader.ReadInt32())
Console.WriteLine(reader.ReadDouble())
Console.WriteLine(reader.ReadDecimal())
Console.WriteLine(reader.ReadString())
End Using
Console.Write("Press <RETURN> to exit.")
Console.ReadKey()
End Sub

最佳答案

Python 不太可能使用相同的约定来存储二进制数据。

需要注意的问题包括从字节顺序到数据结构如何布局的所有内容。 Intel CPU 使用最低有效位排序,TCP/IP 网络协议(protocol)和许多非 Intel CPU(包括传统上运行 UNIX 的 CPU)使用最高有效位排序。像 .NET 这样的平台无关系统在写入二进制文件时将坚持一种顺序。因此,无论 .NET 是在 Core i7、ARM 还是其他 CPU 上运行,它都将与其自身兼容。但即使 Python 始终使用与 .NET 相同的顺序,它也完全不可能以相同的方式布局数据类型和数据结构。

如果您需要在两个平台上使用兼容的文件 IO 库,这会让您处于这样的境地,这比您想要注册的工作量要多。

幸运的是,有一些库可供您使用。请参阅this answer举一个例子。

当然,执行此类操作的现代友好方法是以 XML 或 JSON 等格式写出分隔文本文件。或者,如果您正在处理非常大的数据集,只需使用数据库即可。

关于python - Python 和 .NET 之间二进制文件的兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33202024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com