繁体   English   中英

Python-如何将视频文件读取为二进制数据?

[英]Python - How to read a video file as binary data?

我的作业要求我从视频文件中计算哈希值。 因此,我猜测我需要做的是以某种方式将视频文件读取为二进制数据,然后使用该方法进行哈希运算。 问题是,我只知道如何读写.txt文件-视频文件对我来说是全新的。 所以我的问题是:

如何获取文件并将其读取为二进制数据?

我该如何处理这些数据? 我的意思是,我应该将其粘贴到字符串中还是应该使用某种数组? 我想数字的数量将是巨大的,而且我不希望计算机崩溃,因为我以某种极其低效的方式处理数据:D。

另外,我不太确定我说“二进制数据”时在说什么,因为我对这类东西的经验有限。 我的意思是,不仅是一串1和0,对吗? 因此,我也非常感谢有关“二进制数据”的速成课程:D

文本数据和二进制数据之间确实没有区别。 字符串只是字节序列。 每个字节或几个字节的值都对应一个文本字符。 因此,我们可以像读取字符串一样读取和存储二进制数据(字节序列)。 唯一的区别是,我们从二进制文件中读取的字符序列可能不会被人类读取。

将文件打开格式标记为"rb" (读取二进制),以避免出现文本行结尾问题。 要处理大文件,您可以一次读取少量字节,然后随便计算字节的哈希值。

started = 0
hash_val = 0

with open("video", "rb") as file:
    byte = file.read(1) # read a byte (a single character in text)
    byte_val = ord(byte) # convert the string character into a number

    if started == 0:
        hash_val = byte_val
        started = 1
    hash_val = (hash_val << 5) - hash_val + byte_val # this is a basic hash

print(hash_val)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM