009.Python对象类型——文件
获取文件的打开模式说明和文件相关常用方法请点击公众号学习资源下文件方法菜单。...
点击“蓝色”关注
凡凡Python笔记
前述
想必大多数编程者都知道文件的概念,也就是计算机中由操作系统管理的具有名字的存储区域。简而言之,内置 open 函数会创建一个 Python 文件对象,可以作为计算机上的一个文件链接。在调用 open 之后,你可以通过调用返回文件对象的方法来读写相关外部文件。
注意:与我们目前见过的类型相比,文件对象多少有些不寻常。它们不是数字、序列也不是对应。相反,文件对象只是常见文件处理任务输出模块。多数文件方法都与执行外部文件相关的文件对象的输入和输出有关,但其他文件方法可查找文件中的新位置、刷新输出缓存等。
打开文件
1. 在模式字符串尾部加上 b 可以进行二进制数据处理。
2. 加上 + 意味着同时为输入和输出打开文件(也就是说,我们可以对相同文件对象进行读写,往往与对文件中的修改的查找操作配合使用)。
使用文件
1. 文件迭代器是最好的读取行工具。
2. 内容是字符串,不是对象。
3. close是通常选项。
4. 文件是缓冲的并且是可查找的。
实际应用中的文件
让我们看一个能够说明文件处理原理的简单例子。首先为输出而打开一个新文件,写入一个字符串(以行终止符
结束),之后关闭文件。接下来,我们将会在输入模式下再一次打开同一文件,读取该行。注意第二个 readline 调用返回一个空字符串。这是 Python 文件方法告诉我们已经到达文件底部(文件的空行是含有新行符的字符串,而不是空字符串):
结束),之后关闭文件。接下来,我们将会在输入模式下再一次打开同一文件,读取该行。注意第二个 readline 调用返回一个空字符串。这是 Python 文件方法告诉我们已经到达文件底部(文件的空行是含有新行符的字符串,而不是空字符串):
注意:文件 write 方法调用返回了写入的字符数,这个例子把一行文件写成字符串,包括行终止符
。写入方法不会为我们添加行终止符,所以程序必须包含它来严格地终止行(否则,下次写入时会简单地延长文件的当前行)。
如果想要显示带有末行字符解释的文件内容,用文件对象的 read 方法把整个文件读入到一个字符串中,并打印它:
以这种方式编码的时候,open 临时创建的文件对象将自动在每次循环迭代的时候读入并返回一行。这种形式通常很容易编写,对于内存使用很好,并且比其他选项更快(当然,根据有多少变量)。
在文件中存储并解析 Python 对象
的时候才行(文件中最后一行有时候会没有)。使用字符串 split 方法,从逗号分隔符的地方将整行断开,得到的结果就是含有个别数字的子字符串列表。最后,要转换文件第三行所储存的列表和字典,我们可以运行 eval 这一内置函数,eval 能够把字符串当作可执行程序代码:因为所有这些解析和转换的最终结果是一个普通 Python 对象列表,而不是字符串。现在我们可以在脚本内应用列表和字典操作了。
用 pickle 存储 Python 的原生对象
注意:我们以二进制模式打开用来存储 pickle 化的对象的文件,二进制模式总是 Python3 中必需的,因为 pickle 程序创建和使用一个 bytes 字符串对象,并且这些对象意味着二进制模式文件。在早期 Python 中,对于协议 0 使用文本模式文件是没有问题的(默认情况下,它创建 ASCII 文本),只要一致地使用文本模式;较高的协议要求二进制模式文件。Python3 的默认协议是 3(二进制),但是,它即便对于协议 0 也创建 bytes。
END
凡凡Python笔记
网站:fanfanblog.cn
长按左边二维码扫描关注!!!
点击“阅读原文”
关注 凡凡Python笔记
微信扫一扫关注公众号