Telegram documentation说明以下关于文件ID:
然后将文件的二进制内容拆分为多个部分。所有部分必须 具有相同的大小(part_size)并且必须满足以下条件 满足:
part_size%1024 = 0(可被1KB整除)
524288%part_size = 0(512KB必须可被part_size整除)
最后一部分并不一定要满足这些条件 size小于part_size。每个部分都应该有一个序列号, file_part,取值范围为0到2,999。
我的代码:
def check_conditions(file_name):
b = False
file_binary_data = open("D:\\" + file_name, "br").read()
length = len(bytearray(file_binary_data))
print(file_name + ", size: " + str(length) + " bytes")
for i in range(1, 3000):
part = length // i
if part % 1024 == 0 and 524288 % part == 0:
print("i: " + str(i) + " | part size: " + str(part))
b = True
if not b:
print("No mathces")
print()
check_conditions("The White Stripes - Truth Doesn't Make A Noise.mp3")
check_conditions("Depeche Mode - Precious.mp3")
check_conditions("Placebo - Meds.mp3")
输出:
The White Stripes - Truth Doesn't Make A Noise.mp3, size: 7782220 bytes
No mathces
Depeche Mode - Precious.mp3, size: 10298248 bytes
i: 1257 | part size: 8192
i: 2514 | part size: 4096
Placebo - Meds.mp3, size: 11808625 bytes
No mathces
哪里出错?或者,如果一切正常,如何处理不符合的文件?
答案 0 :(得分:1)
你弄错了。
您只需将文件分成相同大小的片段。
“白色条纹 - 真相不会产生噪音.mp3”,大小:7782220 字节
假设您使用的是最大尺寸为512k(即524288),那么您只需:
7782220/524288 = 14 rem 442188
因此,您有14个512k字节,最后一个442188个字节。
将相同的逻辑应用于其他文件。