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 : '))