鱼C论坛

 找回密码
 立即注册
查看: 1112|回复: 9

[已解决]关于文件字符存储的形式

[复制链接]
发表于 2021-8-21 12:42:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
看了好多文章,就算文件采取的编码格式不一样,但都是由0和1组成的,那我open(file,'rb')后print(read())打印出的为什么是16进制而不是一大堆0和1呢
最佳答案
2021-8-23 00:41:45
一只魈咸鱼 发表于 2021-8-22 21:59
因为字符串的内容不是不允许通过索引修改嘛。。如果用replace的话就只能全为1或全为0了,或者还有其它操 ...

bytes类型不是字符串。然后取反是运算符~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-21 12:47:17 | 显示全部楼层
这是python帮你处理过的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-21 12:47:56 | 显示全部楼层
01是机器语言

编译型语言是C→汇编语言→机器语言→exe文件→CPU

解释型语言是python→字节码→解释器→CPU

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-21 12:49:03 | 显示全部楼层
因为print()是调用str魔术方法

python的 bytes类型的str魔术方法是返回16进制字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 15:37:13 | 显示全部楼层
kogawananari 发表于 2021-8-21 12:49
因为print()是调用str魔术方法

python的 bytes类型的str魔术方法是返回16进制字符串

那假如我想把一个文件里面的0改为1,1改为0,我该如何操作呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-22 13:31:04 | 显示全部楼层
一只魈咸鱼 发表于 2021-8-21 15:37
那假如我想把一个文件里面的0改为1,1改为0,我该如何操作呢

一个字节一个字节的转就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-22 16:31:19 | 显示全部楼层
kogawananari 发表于 2021-8-22 13:31
一个字节一个字节的转就行了

就是说f.read()返回的字符串里面只有0和1吗?那我直接list()转化,然后f在or循环里0,1互换可以吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-22 17:11:03 | 显示全部楼层
一只魈咸鱼 发表于 2021-8-22 16:31
就是说f.read()返回的字符串里面只有0和1吗?那我直接list()转化,然后f在or循环里0,1互换可以吗

为什么要用list  直接for就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-22 21:59:18 | 显示全部楼层
kogawananari 发表于 2021-8-22 17:11
为什么要用list  直接for就行了

因为字符串的内容不是不允许通过索引修改嘛。。如果用replace的话就只能全为1或全为0了,或者还有其它操作吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-23 00:41:45 | 显示全部楼层    本楼为最佳答案   
一只魈咸鱼 发表于 2021-8-22 21:59
因为字符串的内容不是不允许通过索引修改嘛。。如果用replace的话就只能全为1或全为0了,或者还有其它操 ...

bytes类型不是字符串。然后取反是运算符~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 13:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表