Python教程

python系列教程122

本文主要是介绍python系列教程122,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

在Python 3.0和Python 2.6中,文件类型都由open的第二个参数决定,这个参数可以称为模式字符串,如果字符串里包含一个“b”那么就表示以二进制的形式打开文件,否则就是以文本的形式。

Python一直都支持文本和二进制文件,但是在Python 3.0中,二者之间有了明显的区别:
•文本文件把内容表示为常规的str字符串,自动执行Unicode编码和解码,并且默认执行末行转换。
•二进制文件把内容表示为一个特殊的bytes字符串类型,并且允许程序不修改地访问文件内容。

如果需要处理国际化应用程序或者面向字节的数据,Python 3.0中的区别会影响到代码。通常,你必须使用bytes字符串处理二进制文件,而用常规的str字符串处理文本文件。此外,由于文本文件实现了Unicode编码,所以不能以文本模式打开一个二进制数据文件——否则将其内容解码为Unicode文本时可能会失败。

让我们来看一个示例。当你读取一个二进制数据文件的时候,将得到了一个bytes对象:

>>> data = open('data.bin','rb').read()       # Open binary file: rb=read binary

>>> data              # bytes string holds binary data

b'\x00\x00\x00\x07spam\x00\x08'

>>> data[4:8]             # Act like strings

b'spam'

>>> data[0]      # But really are small 8-bit integers

115

>>> bin(data[0])         # Python 3.0 bin() function

'0b1110011'

此外,二进制文件不会对数据执行任何末行转换。所以在读取和写入文件时要分清楚是用文本形式还是用二进制形式。以文本形式写入的文件,在读取时也要用文本形式。以二进制形式写入的文件,在读取时就要用二进制形式!

这篇关于python系列教程122的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!