[英]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.