如何将二进制文件转换为长整型?

发布于 2024-09-14 16:55:36 字数 60 浏览 1 评论 0原文

在Python中,长整数的范围是无限的。有没有一种简单的方法可以将二进制文件(例如照片)转换为单个长整数?

In python, long integers have an unlimited range. Is there a simple way to convert a binary file (e.g., a photo) into a single long integer?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

混浊又暗下来 2024-09-21 16:55:36

使用 bitstring 模块只是:

bitstring.BitString(filename='your_file').uint

如果您愿意,可以使用 int 获取有符号整数 属性。

在内部,这是使用 struct.unpack 来转换字节块,这比按字节进行转换更有效。

Using the bitstring module it's just:

bitstring.BitString(filename='your_file').uint

If you prefer you can get a signed integer using the int property.

Internally this is using struct.unpack to convert chunks of bytes, which is more efficient than doing it per byte.

北座城市 2024-09-21 16:55:36

这是一种方法。

def file_to_number(f):
    number = 0
    for line in f:
        for char in line:
            number = ord(char) | (number << 8)
    return number

您最终可能会遇到 MemoryError

Here's one way to do it.

def file_to_number(f):
    number = 0
    for line in f:
        for char in line:
            number = ord(char) | (number << 8)
    return number

You might get a MemoryError eventually.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文