Python按行输出文件内容详解及延伸

以下两端测试代码分别为笔者所写,第一段为错误版本,后者为正确版本:

#! /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语句两种方式运行结果对比图


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值