最近在看一本经典的python编程学习,名字叫做《python核心编程(第二版)》,相比之前看的零零总总的教程,个人觉得这本书可读性更强,其中给出的代码例程也更具有实用性。
看到第3.6节,第一个python程序,看到了创建文件和读取显示文件的这两个python代码,觉得很有用,特此记录一下。
创建文件(makeTextFile.py)
#!/usr/bin/env python
'makeTextFile.py -- create text file'
import os #导入os模块
ls=os.linesep #为os.linesep取了一个新的别名
#get filename
while True:
if os.path.exists(filename): #如果输入的文件名已经存在,自动退出
print "ERROR:'%s' already exists" %filename
else:
break
#get file content (text) lines
all=[]#初始化列表,用来保存输入的文本内容,一次一行,每一行用'.'表示结束
print "\nEnter lines('.'by itself 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!'
fobj.writelines(['%s%s'%(x,ls) for x in all])
这条语句的作用是列表分析,为文件的每一行添加一个合适的行结束符。 ‘%s%s’ 为每一行添加行结束符,(x,ls)表示每一行及其行结束符。通过使用os.linesep 不用关心程序运行在什么平台,也不用根据不同的平台决定使用哪种行结束符。
文件读取和显示(readTextFile.py)
#!/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()
在这个程序种出现了一种新的python结构,try-except-else语句。
try子句是一段我们希望监测错误的代码,except是处理错误的地方,print "***file open error:",e
给出错误类型。