1这是一个创建一个文件,并在控制台写入行到新建的文件中.
#!/usr/bin/env python 'makeTextFile.py -- create text file' import os ls = os.linesep #get filename while True: fname = raw_input('Enter filename:') if os.path.exists(fname): print "ERROR: '%s' already exists" % fname else: break #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!' os.linesep表示行结尾标志, 用本地变量名ls代替它节省了时间,并减少了消耗系统资源. 用 raw_input()读入文件名 用列表all[]来保存每一行文本(它们暂时在内存中). 最后创建文件后,用writelines()把内存中的行写入打开的文件中.
#!/usr/bin/env python '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()
(1)注意:由于我们没有移除代表每行结束的行结束符,我们不得不抵制 print 语句自动生成的行结束符 --通过在print 语句的最后加一个逗号可以达到这一目的
print 后没有逗号是这种效果:
(2) try-except-else是一个新出現的语句,其中except子句是我们处理错误的地方.
注:两个程序在执行前,需要给文件增加可执行权限.
$chmod a+x filename