赞
踩
以下两端测试代码分别为笔者所写,第一段为错误版本,后者为正确版本:
#! /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语句两种方式运行结果对比图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。