python3的字节码和字符码

在python3中,字节码和字符码发生了区分,即

str1=b'i love python3'
str2=‘i love python3'

str1和str2归属于两种不同的类型,str1归属于bytes类型,str2归属于str类型
python3之所以采用 str和bytes这两种类型的原因是因为方便存储,我们知道,bytes类型其实就是8位一个字符的编码格式,在存储的过程中str1就是直接的而二进制类型,可以直接存储,如下面的例子所示:

def main():
    try:
        with open('./a.txt','wb+') as f:
            str1 = b'i love python3'
            f.write(str1)
    except Exception as e:
        raise e

if __name__ == '__main__':
    main()

如上例所示,文件a.txt是以二进制的形式打开,而写入的str1也是二进制的格式,因此可以直接写入,而不用考虑编码的格式;
另外,在文件以二进制形式打开的时候,可以采用decoding的方法进行编码,然后存储到文件当中,如下所示:

def main():
    try:
        with open('./a.txt','wb+') as f:
            str1 = 'i love python3'
            f.write(str1.encode('utf-8'))
    except Exception as e:
        raise e

if __name__ == '__main__':
    main()

在文件写入的时候,如果以二进制编码的形式读写文件时,我们不需要考虑文件的编码形式,只需要知道当前要写入的str类型的编码格式,最后再采用encode的方式将当前的字符串采用指定的编码形编写成二进制码并写入到文件中即可;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值