文件处理

文件的处理和异常(1)

  将我们前面编写的User类、Admin类存储在一个模块中,并在另外一个类中调用一个Admin类,在其中创建一个Admin实例并对其调用方法show_privileges( ),以确认一切都能正确地运行。

  这时候,我们导入了User文件中的两个类,并创建实例,可以看到代码变得很简单:

  到了这里,我们已经掌握了编写组织有序而易于使用的程序所需要的基本技能,该考虑让程序目标更明确、用途更大的时候了。在本节中我们讲学习如何处理文件,让程序能够快速地分析大量的数据;我们将学习错误处理,避免程序在面对意外情形时崩溃;我们将学习异常,它们是python创建特殊对象,用于管理程序运行时出现的错误;我们还将学习模块json,它让我们能够保存用户数据,以免在程序停止运行后丢失。

  学习处理文件和保存数据可以让我们的程序使用起来更加容易:用户将能够选择输入什么样的数据,以及在什么时候输入;用户使用我们的程序做一些工作后,可以将程序关闭,以后再接着往下做。学习处理异常可以帮助你应对文件不存在的情形,以及其他可能导致程序崩溃的问题。这让我们的程序变得更加健壮。

  文本文件可以存储的数量多的难以置信:天气数据、交通数据、社会经济数据、文学作品等,每当需要分析或修改存储在文件中的信息时,读取文件都将很有用,对数据分析应用程序来说尤其是这样。例如,我们可以编写一个程序:读取一个文本文件的内容,重新设置这些数据的格式并将其写入文件,让浏览器能够显示这些内容。

  要使用文本文件中的信息,首先需要将信息读取到内存中。为此,我们可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。

  要读取文件,需要一个包含几行文本的文件。下面首先来创建一个文件,它包含精确到小数点后30位的圆周率,且在小数点后每10位处都换行,我们首先在python3.7的文件夹下,创建一个新的文件,后缀为.txt:

  下面我们将打开并读取这个文件,再将其内容显示到屏幕上,我们将在python3.7文件夹下再创建一个.py的文件命名为:file_reader.py:

  在这个程序中,我们陌生的也就是第一行代码,首先我们先来看open( )函数,要以任何方式使用文件——哪怕仅仅是打印其内容,都必须要先打开这个文件,这样才能够访问它。函数open( )接受一个参数:要打开的文件的名称。python在当前执行的文件所在的目录中查找指定的文件。在这个示例中,当前运行的是file_reader.py。因此python在file_reader.py所在的目录查找pi_digits.txt。函数open( )返回一个表示文件的对象。在这里,open(pi_digits.txt)返回一个表示文件pi_digits.txt的对象;python将这个对象存储在我们后面使用的变量中。

  关键字with在不再需要访问文件后将其关闭。在这个程序中,注意到我们调用open( ),但没有调用close( );你可以调用open( )和close( )来打开和关闭文件。但这样做时,如果程序存在bug导致close( )语句未执行,文件将不会关闭,就可能会导致文件受损。而我们使用关键字with就不需要考虑这样的问题了。

  我们使用了read( )方法来读取这个文件中的全部内容,并将其作为一个长长的字符串存储在变量contents中。这样,通过打印contents的值,就可以将这个文本文件的全部内容显示出来:

  本节练习:将你的名字以及一些相关的信息存储在一个文件中,使用python读出文件内容,并将其打印出来。

文件处理          

Copyright © 2002-2019 六台宝典开奖今晚结果 版权所有