Python“文件操作”略知

大家好,今天我们继续聊聊Python中的文件操作。 有一首诗,艾青的“我爱这土地”,我们在上学的时候都学过吧,我记得当时老师是要求全文背诵的,时隔这么久,多多少少忘了些,不过有一句却记忆犹新,“为什么我的眼里常含泪水?因为我对这土地爱得深沉 ”。今天我们就用Python试着读一下这首诗,让Python也学习一下我们中华儿女的家国情怀。

image

还是照旧,先用open方法打开文件,再用read方法读取文件。

image

这,这不是我们想要的结果啊,一股脑的全打印出来了,把诗的美感全破坏了,别急,我们找找Python文档,看有没有办法解决。

image

诶,这个可以,readline,从英文名字看就知道是读一行,OK,我们试一下。

image

倒是一行一行读出来了,可是每读一行,都要执行一下readline方法,还是不方便,再找找看,有没有更好的方法。

image

readlines,就是多好多行嘛,参数是需要读取的行数,我们试一下。

image

看,已经把所有文件存储到一个列表中了,怎么打印出来呢?大家先回忆一下,提示用for/in语句,OK,看看和我写的一样不一样。

image

简直不能再完美了,哎呀,刚刚手一抖,又敲了一行readline,输出结果如下图所示。

image

看到这儿,我陷入了沉思。诶,这Python真是聪明啊,它居然知道我读完了,就啥也不给输出了,可问题是假如我还想从头或从某个位置再读一遍文件该怎么办?于是冥思苦读,终于在文档中找到了下面三个方法。

image

先做一下简单解释,我们通过open方法打开文件,返回值是一个TextIOWrapper对象,这个大家可以用help语句看一下。

image

这个对象代表什么呢,百度翻译上给的解释是文件扫描器,虽然不算准确,不过倒也符合中国人的思维习惯,大家可以按这个来理解,执行完open方法后,文件内容被一个挨一个地“扫描”进这个对象中,就好像是文件流(类比于水流,大家可以想象一下),而且还有一个指针一直指着文件流的当前位置,我们把这个指针称作“文件流指针”。

讲解到这儿,就可以继续介绍上面的三个方法了,seek方法用于根据偏差值offset更改流的位置;seekable用于判断该对象是否支持随机访问,如果不支持seek、tell等方法都是不能用的,所以保险起见,应先执行一下seekable方法;tell方法用于返回文件流的当前位置,其实也就是“文件流指针”的值,👌,分析完毕,我们代码中操作看看。

image

我们简单解释一下上述代码,首先通过执行seekable方法确认该对象支持随机访问,然后通过调用tell方法获取当前的“文件流指针”值,接下来通过执行seek方法使得 “文件流指针”重新指向文件开头,最后通过调用readline方法输出一行文本,由此也证明了seek方法的有效性。

writeline方法和readline方法类似,大家可以自己尝试着学习一下,就当是作业了。

OK,今天的Python“文件操作”学习就到这儿,不过不要以为“文件操作”这块内容已经结束了哈,其实还远远没有呢,就像题目中说的那样,我们仅仅是做到了略知。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,152评论 0 10
  • 一、文件对象 文件对象是Python代码访问、操作磁盘上文件的主要接口。文件对象不仅可以用来访问普通的磁盘文件,而...
    常大鹏阅读 6,112评论 0 9
  • 文件介绍:文件其实没什么好介绍的,我们在平时工作以及使用电脑的时候,都会用到各种各样的文件,首先,文件有多种格式,...
    hello_我的哥阅读 2,415评论 0 1
  • 风风火火的烈焰性格,要么把别人烘热、焙暖,要么把别人烧成灰烬、连渣子都不剩。 敏感的眉头随着周围...
    孤岛女巫阅读 1,456评论 2 1
  • 我更喜欢努力的自己 001 自律使我们活得更高级 自我控制,该锻炼的时候锻炼,该努力的时候努力,该拒绝的时候说不。...
    苏菲亲子阅读 1,222评论 0 0