计算机仿真之把时间保存到文件,,


  把时间保存到文件

  在本章最前面我们提到过,在有时需要把一个时间值保存到(硬盘上的)文件中,这样一来,即使程序没有运行,这条信息也能得到保存,如果程序结束时保存当前时间(now()),程序再次启动时就可以检查这个时间,并打印这样的一条消息:

  与孩子一起学编程-python教程

  当然,大多数程序不会这样做,不过确实有一些程序需要知道已经有多长时间空闲(没有运行),电子宠物程序就是这样一个例子,就像你买到的电子宠物钥匙链一样,你可能希望即使你没有使用程序,它仍然会跟踪时间。例如,如果你结束程序之后过了两天再来看你的电子宠物,它应该会非常饿!程序要知道宠物多饿,只有一个办法,就是要知道从最后一次喂食到现在隔了多长时间,这也包括程序关闭的时间。

  将时间保存到一个文件中有两种方法。可以把一个字符串直接写入文件,如下:

  timeFile.write(“2008-10-24 14:23:37”)

  要读这个时间戳时,可以使用一些字符串方法(如split())将这个字符串分解为各个部分,如天、月、年以及小时、分和秒。这种做法应该是可行的。

  另一种方法是使用pickle模块,这在第22章介绍过,pickle模块允许你把任何类型的变量保存到文件中,也包括对象,由于我们要使用datetime对象跟踪时间,所以使用pickle可以很容易地把时间对象存入文件,还能很方便地读取。

  下面来看一个非常简单的例子,它会打印一条消息,指出程序最后一次运行的时间。这个程序要完成下面的工作。

  查找一个pickle文件并打开这个文件,Python有一个os(操作系统operating system的简写)模块,可以告诉我们这个文件是否存在,这里要使用的方法名为isfile()。

  如果文件存在,就认为程序之前运行过,得出它最后一次运行的时间(根据pickle文件中的时间得出)。

  然后用当前时间写一个新的pickle文件

  如果这是程序第一次运行,就没有pickle文件可以打开,所以会显示一条消息,指出我们创建了一个新的pickle文件。

  代码清单24-3给出了这个程序的代码,可以试试看结果如何。

  与孩子一起学编程-python教程

  现在已经万事俱备,可以建立简单的电子宠物程序了,下一节就来建立这样的一个程序。

评论关闭