美文网首页
存储和获取文本文件数据的方式

存储和获取文本文件数据的方式

作者: Mr旺旺 | 来源:发表于2019-01-29 23:43 被阅读0次

基于之前已经建立的webapp,这里我们来了解处理文件。

目前,已经建立的web应用可以接收web浏览器的输入(以phrase和letters的形式),完成一个search4letters调用,然后向正在等待的web浏览器返回结果。一旦工作完成,web应用就会丢掉它的所有数据。

Python支持打开、处理和关闭文件

Python提供了内置支持来实现文件的打开(open)、处理(process)和关闭(close)。这种通用技术允许你打开一个文件,以某种方式保留其数据,然后在完成时关闭文件。

open

对todos.txt文件调用open,这里使用追加模式,因为我们计划为这个文件增加数据,如果open调用成功,解释器会返回一个对象(称为),这是实际文件的一个别名,这个对象(流)将赋给一个变量,名为todos

括号内'a':采用追加模式打开这个文件

'a'打开一个文件来追加数据,保留文件的内容,向文件末尾增加新数据;

'w'打开一个文件来写数据,如果文件中已经包含数据,在继续写之前会清空文件中的数据;

'r'打开一个文件来读数据,这是默认模式,如果没有提供第二个参数,就假设为'r';

'x'打开一个新文件来写数据,如果文件已经存在则失效。

这样一来,我们在代码中就可以用todos变量指示文件(其它编程语言称之为文件句柄)。调用open后,文件已打开,下面使用print来写文件。注意print有一个额外的参数(file),用来指定要写的文件流。


file=todos:到文件流

此时,我们的任务列表不再需要增加其它记录,下面调用close方法来关闭文件。

close

todos.close()

如果忘记调用close,很可能会丢失数据。

从现有文价读取数据

既然已经在todos.txt文件中增加了一些数据行,下面来看从这个文件读取所保存的数据并显示在屏幕上需要的“打开、处理和关闭”代码。

这里是open的默认模式,不需要提供模式参数

使用一个for循环从这个文件读取各行,这样一来,for循环的迭代变量(chore)会赋为从文件读取的当前数据行,每次迭代会为chore赋一个数据行。

打印出todos.txt文件的数据

相比较于open、close方法,with语句更方便

注意看:

tasks = open('todos.txt')

for chore in tasks:

        print(chore, end=' ')

tasks.close()

上面这段代码等效于:

with open('todos.txt') as tasks #将文件流赋至一个变量

for chore in tasks:

        print(chore,  end=' ')

相比较于上一种方法,with语句的代码组没有close调用,因为with语句足够聪明,只要它的代码组结束,就会代表你调用close。

by PengSW_10 on 2019/1/29

相关文章

网友评论

      本文标题:存储和获取文本文件数据的方式

      本文链接:https://www.haomeiwen.com/subject/adwfsqtx.html