下面两端測试代码分别为笔者所写,第一段为错误版本号。后者为正确版本号:
#! /usr/bin/python2.7 try: filename = raw_input(‘please input filename:’)
for eachLine infilename: print(eachLine) eachLine.close() except IOError as err: print(‘file open error: {0}’.format(err))
#! /usr/bin/python2.7 try: //try....except--------为Python中的异常处理语句 filename = raw_input(‘please input filename:’) //读取字符 fobj = open(filename, ‘r’) //检測操作语句 for eachLine in fobj: //循环输出 print(eachLine) fobj.close() //关闭对象句柄 except IOError as err: print(‘file open err:{0}’.format(err))
笔者自己的错误:
习惯性的觉得,创建了文件之后,就能够直接读取当中的数据。可是须要先检測文件是否存在,须要用到内建open()函数。
关于内建函数open():handle = open(file_name,access_mode=’r’)file_name 变量包括我们希望打开的文件的字符串名字。access_mode表示打开文件的方式,打开方式如表1,假设open成功。一个文件对象句柄会被返回。
全部兴许文件操作都必须通过此文件句柄进行。当一个文件对象返回之后,我们就能够訪问它的一些方法,eg. readlines(),close()。
表1. 文件打开模式
a | 追加模式打开 |
w | 写模式打开 |
r | 读模式打开 |
a+ | 读写模式打开 |
w+ | 读写模式打开 |
r+ | 读写模式打开 |
ab | 二进制追加模式打开 |
wb | 二进制写模式打开 |
rb | 二进制读模式打开 |
ab+ | 二进制读写模式打开 |
wb+ | 二进制读写模式打开 |
rb+ | 二进制读写模式打开 |
Tips:代码中一个有趣的语句。即print(eachLine)。
此语句中能够通过在末尾加入逗号的方式,抑制自己主动生成的换行符号,由于在文件里自带换行字符。假设我们不抑制print语句产生的换行符号。就会有额外的空行产生。
两种方式的执行结果对照图如图1。
图1.print语句两种方式执行结果对照图