《Python 核心编程》 第三章习题 3.10

6 篇文章 0 订阅
3 篇文章 0 订阅

3.10 (异常)使用类似与readTextFile.py 中异常处理的方法取代 makeTextFile.py 中对 os.path.exists()的调用,反之亦然。


makeTextFile.py

#!/usr/bin/env python

'makeTextFile.py -- create text file'

import os
ls = os.linesep

#get filename
fname = raw_input('Input the filename : ')
while True:
	# check if this file lives
	try:
		fobj = open(fname, 'r')
	except IOError, e:
		print "***file open error : ", e
		break
	else:
		
	# if os.path.exists(fname):
	#     print "ERROR: '%s' already exists" % fname
	#     break
	# else:
		print 'OK, you create a new file now and its named %s' % fname
		#get file content (text) lines
		all = []
		print "\nEnter lines ('.' by itself to quit).\n"

		#loop until user terminates input
		while True:
		    entry = raw_input('> ')
		    if entry == '.':
		        break
		    else:
		        all.append(entry)

		# write lines to file with proper line-ending
		fobj = open(fname, 'w')
		fobj.writelines(['%s%s' % (x, ls) for x in all])
		fobj.close()
		print 'DONE!'
		break


readTextFile.py

#!/usr/bin/env python

'readTextFile.py -- read and display text file'

import os

# get filename
fname = raw_input('Enter filename : ')
print

# attempt to open file for reading 
# try:
# 	fobj = open(fname, 'r')
# except IOError, e:
# 	print "***file open error:", e
# else:
if os.path.exists(fname):
	# display contents to the screen
	for eachLine in fobj:
		print eachLine,
	fobj.close()
else:
	print 'No such files or directory!'

一点感想:

为什么我们要造轮子?

有可能os.path.exists()里面已经存在如何应对异常现象处理的情况,但是我们还是要造一个轮子出来,重新发明一个轮子来做同样一件事。是因为我们要处理程序中非正常的错误,比方说服务器忽然掉线什么的,在没有合适函数的情况下,还是自己造一个轮子出来吧。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值