ex20函数和文件

这课的小知识点比较多一点,先贴上代码

#coding=utf-8
from sys import argv

script, input_file = argv

def print_all(f): #打印文件所有内容
    print f.read()

def rewind(f): #把指针调至文件开头位置
    f.seek(0)

def print_a_line(line_count, f): #读取内容的一行,每一行以‘\n’结束
    print line_count, f.readline(), #输出行号及这行内容

current_file = open(input_file)

print "First let's print the whole file:\n"

print_all(current_file)

print "Now let's rewind, kind of like a tape."
rewind(current_file)

代码中有三个自定义的函数,其中seek()方法做为了一个小作业,我上网上查了一下,把想关的知识补充上

file.seek(off, whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。

我们代码中用到的是seek(0),就是把指针放在开头位置,没有设置off值
再来看看下面的截图

QQ截图20160313201328.png

红箭头处的为什么出现空了一行?
再看下面的图:

QQ截图20160313201450.png

原因如下:

readline()函数返回的内容中包含文件本来就有的\n,而print在打印时又会添加一个\n,这样一来就会多出一个空行了,解决方法是在print语句结尾加一个逗号,这样print就不会把它的\n打印出来了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,852评论 0 17
  • NSString -> std::string std::string -> NSString
    王zuozuo阅读 11,327评论 0 1
  • 想在广阔的森林有一片土地。那有参天的树和哗啦啦的风,一座不太大的湖泊,清澈,透明。湖畔,立着一座小木屋。最后,有一...
    老兽阅读 1,137评论 2 0
  • 幸好这不算回忆,因为我还历历在目,幸好我还没有到只剩回忆的年纪。―题记 卧在山城立秋后的清凉中,窗外是浮走的乌...
    叶听风阅读 2,206评论 0 0