如果希望程序结束后数据仍然保持,你需要将数据保存到文件中。 你可以认为文件的内容是一个字符串值,大小可能有几个GB 。 将学习如何使用Python在硬盘上创建、读取和保存文件。
大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。
从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。大家可能对BMP文件比较熟悉,就拿它举例子吧,其头部是较为固定长度的文件头信息,前2字节用来记录文件为BMP格式,接下来的8个字节用来记录文件长度,再接下来的4字节用来记录bmp文件头的长度。
文本文件和二进制文件的存储:
- 二进制文件就是把内存中的数据按其在内存中存储的形式原样输出到磁盘中存放,即存放的是数据的原形式。
- 文本文件是把数据的终端形式的二进制数据输出到磁盘上存放,即存放的是数据的终端形式
“二进制文件”是所有其他文件类型,诸如字处理文档、
PDF、图像、电子表格和可执行程序。
如果用 Notepad
或 TextEdit
打开一个二进制文件,
它看起来就像乱码。
既然每种不同类型的二进制文件,都必须用它自己的方式来处理,本书就不会探讨直接读写二进制文件。
好在,许多模块让二进制文件的处理变得更容易。
在本章稍后,你将探索其中一个模块: shelve
。
- 在计算机中,文件是以二进制的方式保存在磁盘中的;
- 文本文件可以使用文本编辑软件进行操作,但是本质上还是二进制文件;
- 二进制文件保存的内容不是给人直接阅读的,而是提供给其他软件使用的(图片文件,音频文件,视频文件等等,用相应的软件进行查看);
- 二进制文件不能使用文本标记软件进行查看。