python处理二进制文件_Python处理二进制文件有危险吗?

I feel binary data don't have such things like end-of-line.

二进制文件中可以包含任何可能的字符,包括字符\n。您不希望python将二进制文件中的任何字符隐式转换为其他字符。Python不知道它正在读取二进制文件,除非您告诉它。当python读取文本文件时,它会自动将\n任何字符转换为操作系统的换行符,在Windows上是\r\n

这是所有计算机编程语言的工作方式。在

另一种思考方法是:一个文件只是一个长的字节序列(8位)。字节只是一个整数。字节可以是任意整数。如果一个字节恰好是整数10,那么这也是字符的ascii代码。\n如果文件中的字节表示二进制数据,则不希望Python读入10并将其转换为两个字节:13和10。通常当你读二进制数据时,你想读,比如说,前2个字节代表一个数字,然后4个字节代表另一个数字,等等。。显然,如果python突然将其中一个字节转换为两个字节,那将导致两个问题:1)它改变了数据;2)所有的数据边界都将混乱。在

举个例子:假设文件的第一个字节代表一只狗的体重,这个字节的值是10。下一个字节代表狗的年龄,它的值是1。如果Python将10(ascii代码)转换为两个字节:10和13,那么Python提供的数据将如下所示:

1013年1月

当你提取狗的年龄的第二个字节时,你得到的是13而不是1。在

我们经常说一个文件包含“字符”,但这显然是错误的。计算机不能存储字符,只能存储数字。所以一个文件就是一长串的数字。如果告诉python将这些数字视为表示字符的ascii代码,那么python将给您文本。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值