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

3–12. 合并源文件。将两段程序合并成一个,给它起一个你喜欢的名字,比方readNwriteTextFiles.py。让用户自己选择是创建还是显示一个文本文件。


#!/usr/bin/env python

def ReadTextFile():
	"""readTextFile.py -- read and display text file"""

	# 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:
		# display contents to the screen
		for eachLine in fobj:
			print eachLine,
		fobj.close()

def MakeTextFile():
	"""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
		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

def Menu():
	print '|-------------------------------|'
	print '| 1.Create text file.        |'
	print '| 2.Display text file.       |'
	print '| 3.Exit                            |'
	print '|-------------------------------|'
# main function
Menu()
choice = int(raw_input('Enter number by what you want to do : '))
while True:
	if choice == 1:
		MakeTextFile()
		break
	elif choice == 2:
		ReadTextFile()
		break
	elif choice == 3:
		break
	else:
		Menu()
		choice = int(raw_input('Please checked and input again : '))


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值