[Python]1/20/15 8:17 PM

  • 你可使用pickle.dump将数据结构存储到磁盘,以后再使用pickle.load从磁盘获取数据结构。

 

  • 提示 除数据结构外,还可使用pickle来存储函数。提示 pickle不能用于读写特殊格式的二进制文件,如GIF文件。对于这样的文件,必须逐字节处理。

 

  • 提示 Python包含一个名为shelve的模块,这个模块提供了存储和检索数据的更高级方式。模块shelve让你能够将文件视为字典
>>> import urllib.request
>>> resp = urllib.request.urlopen ('http://www.python.org')
>>> html = resp.read()
>>> html[:25]
b'<!DOCTYPE html PUBLIC "-/'

 

html包含www.python.org处网页的全部文本。这些文本是HTML格式的,因此与你在Web浏览器中使用“查看源代码”选项看到的结果一样。

 

  • 异常
  • 捕获异常

异常发生时,你有如下两种选择。

 

1.忽略异常,让程序崩溃并显示栈跟踪。在开发程序期间,你通常想这样做,因为栈跟踪提供的调试信息很有帮助。

 

2.捕获异常,并打印友好的错误消息乃至试图修复问题。对于要供非程序员使用的程序,几乎都应这样做。普通用户可不想看到栈跟踪!

 

 

  • 清理操作

 

  • try/except/finally/with

 

while循环是一个try/except块。你可将可能引发异常的代码放在try块中。

 

只要try块中的代码出现异常,就将跳过其他所有未执行的语句,立即跳转到except块。

 

try/except块的工作原理有点像if语句,但存在一个重大不同:if语句根据布尔表达式的结果决定如何做,而try/except块根据是否出现了异常决定如何做。

 

在try/except块中,可包含执行清理操作的finally代码块, finally块肯定会执行,它要么在执行try块后执行,要么在执行except块后执行。在不管是否发生异常都要执行某些代码时,这很有用。例如,通常将关闭文件的语句放在finally块中,这样文件肯定会被关闭,即便发生了IOError异常。

 

为确保不再需要的文件被尽早关闭,可使用with语句:

 

num = 1

with open(fname, 'r') as f:

for line in f:

print('%04d %s' % (num, line), end = '')

num = num + 1

 

这个代码片段的屏幕输出与前一个代码片段相同,但使用with语句时,将在for循环结束后立即执行文件对象清理操作(即关闭文件),避免了不再需要的f处于打开状态。

 

 

 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.