Python核心编程之第一个Python程序

来源:互联网 发布:观网络知识防诈骗有感 编辑:程序博客网 时间:2024/06/05 22:09
#!/usr/bin/env python#makeTextFile.py ---- create text fileimport osls = os.linesep#get filenamewhile True:    fname = raw_input('Enter filename:')    if os.path.exists(fname):        print "ERROR:'%s'already exists" % fname    else:        break#get file content (text) linesall = []print "\nEnter lines ('.'by itself to quit).\n"#loop until user terminates inputwhile True:    entry = raw_input('>')    if entry == '.':        break    else:        all.append(entry)#write lines to file with proper line-endingfobj = open(fname,'w')fobj.writelines(['%s%s' % (x, ls) for x in all])fobj.close()print 'Done!'

break 指示跳出while循环语句。


解析:fobj.writelines(['%s%s' % (x, ls) for x in all])

当输入内容保存在内存中,需要将其保存到文件。    打开文件准备进行写操作。

将内存中得到内容逐行写入文件。每个文件都需要一个行结束符(或者文件结束符)。代码结构称为列表解析。它完成:

对我们文件的每一行,根据程序运行平台添加一个合适的行结束符。'%s%s'为每行添加行结束符,(x, ls)表示每一行及其行结束符,对Unix平台是'\n', 对DOS或win32平台式'\r\n'。通通过使用os.lineseq,我们不关心程序运行在什么平台,也不必涛根据不同的平台决定使用哪种行结束符。文件对象的writelines()方法接收包含行结束符的结果列表,并将它写入文件。

#!/usr/bin/env Python#ReadTextFile.py ---- read and display text file#get filenamefname = raw_input("Enter filename:")print#attempt to open file for readingtry:    fobj = open(fname, 'r')except IOError, e:    print '*** file open error:', eelse:    #display contents to the screen    for eachLine in fobj:        print eachLine,    fobj.close()

try-except-else语句:

try子句是一段我们希望检测错误的代码块。即我们的动作;

except子句是我们处理错误的地方,检查try的动作,--通常是IOERROR类型的错误。

else子句在try代码块运行无误时执行。


由于我们没有移除代表每行结束的行结束符,我们不得不抵制print语句自动生成的行结束符--通过在print语句的最后加一个逗号可以达到这一目的。(不处理的话既有两个行结束符--即回车换行2次)

0 0
原创粉丝点击