江湖散人 发表于 2021-4-2 20:55:33

文件插入二进制问题

F=open('data.bin','wb')
import struct
bytes=struct.pack('>i4sh',7,'sapm',8)

这个老是报错啊?什么问题啊 ?

Hela 发表于 2021-4-2 21:37:06

> 用不用加个转义啥的

江湖散人 发表于 2021-4-2 23:18:19

Hela 发表于 2021-4-2 21:37
> 用不用加个转义啥的

我也不知道啊,我就是看视频,然后原样敲进去的,就报错了,不知道为啥

Daniel_Zhang 发表于 2021-4-2 23:54:45

https://zhuanlan.zhihu.com/p/145201882?from_voters_page=true

江湖散人 发表于 2021-4-3 08:24:54

Daniel_Zhang 发表于 2021-4-2 23:54
https://zhuanlan.zhihu.com/p/145201882?from_voters_page=true

啥意思啊 ?

wp231957 发表于 2021-4-3 09:17:30

>i4sh这里需要打包的是3个参数
第一个>是内存对齐方式,暂时可以pass
第二个是i4   长度为4的int类型
第三个是4s   长度为4的字符串
第四个是h   长度为1的短整
其中,字符串要用b强转

wp231957 发表于 2021-4-3 09:18:07

江湖散人 发表于 2021-4-3 08:24
啥意思啊 ?

bytes=struct.pack('>i4sh',7,b'sapm',8)
试一下

江湖散人 发表于 2021-4-3 10:20:33

wp231957 发表于 2021-4-3 09:17
>i4sh这里需要打包的是3个参数
第一个>是内存对齐方式,暂时可以pass
第二个是i4   长度为4的int类型


按照你说的我操作了,结果也能运行,但是多了个b,
(7, b'spam', 8)
怎样才能把这个b去掉呢?

wp231957 发表于 2021-4-3 10:21:57

江湖散人 发表于 2021-4-3 10:20
按照你说的我操作了,结果也能运行,但是多了个b,
(7, b'spam', 8)
怎样才能把这个b去掉呢?

这个b不是多余的,而是告诉你后面跟的是bytes型数据

江湖散人 发表于 2021-4-3 10:24:24

wp231957 发表于 2021-4-3 10:21
这个b不是多余的,而是告诉你后面跟的是bytes型数据

嗯,我想要的输出的结果是正常的,我不想有这个b,怎么办啊?

wp231957 发表于 2021-4-3 10:35:10

江湖散人 发表于 2021-4-3 10:24
嗯,我想要的输出的结果是正常的,我不想有这个b,怎么办啊?

我没在电脑前
你可以用str强转,或者用decode进行解码都可以

Daniel_Zhang 发表于 2021-4-3 15:23:55

江湖散人 发表于 2021-4-3 08:24
啥意思啊 ?

看不懂就算了喽

要是自己不愿意去研究,等着别人手把手教,真学不到什么东西的

给你的链接,人家也有你这个问题,不然我放上来干啥?为的就是让你研究研究人家是如何解决的
页: [1]
查看完整版本: 文件插入二进制问题