《Python核心编程》第二版第三章答案

本人python新手,答案自己做的,如果有问题,欢迎大家评论和讨论!

更新会在本随笔中直接更新。

我在Windows使用python版本是2.7.0

  

3–10. 异常。使用类似readTextFile.py 中异常处理的方法取代 readTextFile.py makeTextFile.py 中对os.path.exists() 的调用。反过来, 用os.path.exists() 取代readTextFile.py 中的异常处理方法。

我的答案;

makeTextFile.py

 1 '''
 2 @auther:Feng Xu
 3 '''
 4 'makeTextFile.py -- create text file'
 5 
 6 import os
 7 ls = os.linesep
 8 
 9 #get file name
10 while True:
11     fname = raw_input('Input your filename:')
12     #利用读文件来检查fname文件是否存在,如果存在打印错误信息,关闭文件,继续循环;不存在直接异常break退出while循环
13     try:
14         fobj = open(fname, 'r')
15         print "***Error: %s already exists" % fname
16     except IOError, e:
17         break
18     else:
19         fobj.close()
20     
21 all = []
22 print "\nEnter lines('.' by itself to quit).\n"
23 
24 # loop until user terminates input
25 while True:
26     entry = raw_input('-->')
27     if entry == '.':
28         break
29     else:
30         all.append(entry)
31 
32 # write lines to file with proper line-coding
33 fobj = open(fname, 'w')
34 for x in all:
35     fobj.writelines('%s%s' % (x, ls))
36 fobj.close()
37 
38 print 'Done!'

readTextFile.py

 1 '''
 2 @auther:Feng Xu
 3 '''
 4 'readTextFile.py -- read and display text file'
 5 
 6 import os
 7 
 8 while True:
 9     fname = raw_input('Enter filename:')
10     if os.path.exists(fname):
11         break
12     else:
13         print "Error: %s not exists" % fname
14 
15 #display contents to the screen
16 fobj = open(fname, 'r')
17 for eachline in fobj:
18     print eachline,
19 fobj.close()

【未完】

posted @ 2014-04-11 17:15  Xu Feng  阅读(552)  评论(0编辑  收藏  举报