
1这是一个创建一个文件,并在控制台写入行到新建的文件中.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
'makeTextFile.py -- create text file'
import os
ls = os.linesep
while True:
fname = raw_input('Enter filename:')
if os.path.exists(fname):
print "ERROR: '%s' already exists" % fname
else:
break
all = []
print "\nEnter lines('.' by itself to quit).\n"
while True:
entry = raw_input('>')
if entry == '.':
break
else:
all.append(entry)
fobj = open(fname, 'w')
fobj.writelines(['%s%s' % (x, ls) for x in all])
fobj.close()
print 'DONE!'
os.linesep表示行结尾标志, 用本地变量名ls代替它节省了时间,并减少了消耗系统资源.
用 raw_input()读入文件名
用列表all[]来保存每一行文本(它们暂时在内存中).
最后创建文件后,用writelines()把内存中的行写入打开的文件中.
|
2.这是一个读特定文件内容的小程序.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
'readTextFile.py -- read and display text file'
fname = raw_input('Enter filename: ')
print
try:
fobj = open(fname, 'r')
except IOError, e:
print "*** file open error:", e
else:
for eachLine in fobj:
print eachLine,
fobj.close()
|
(1)注意:由于我们没有移除代表每行结束的行结束符,我们不得不抵制 print 语句自动生成的行结束符 --通过在print 语句的最后加一个逗号可以达到这一目的
print 后没有逗号是这种效果:
(2) try-except-else是一个新出現的语句,其中except子句是我们处理错误的地方.
注:两个程序在执行前,需要给文件增加可执行权限.
|