python基础10-文件读写part1

本篇主要讲解Python对文件的处理,对文件的读写是我们日常中最用的操作了,不管你是分析日志还是要将生成的结果写到文件里,都需要用到读文件的读写操作,在python下对文件非常容易,我们使用它的内建函数open()就可以打开一个文件,如果你要打开个文件一般的用法是:

这里fi是open()返回的文件对象,有的刚接触的小伙伴可能就要问了,啥叫文件对象呀,对象这是一个抽象的概念,在Python里一切都是对象,你可以理解为如果它是一个对象,那么它将有它的属性和方法, 不知道这么说清楚没有,没理解也没关系,多用就明白了, 另一个mode指明对文件的访问模式,常用模式如下:

r: 以读方式打开文件

w:以写方式打开文件

rb:以二进制读模式打开

wb:以二进制写模式打开

a:以追加模式打开

a+:以读写模式打开

这些模式基本覆盖了我们日常的对文件操作,当然除了这些还有一些其他模式,想深入了解的可以去自己学习下,如果是对运维来说这些基本够了。

首先我们来了解读文件的方法:

1、read()方法,这个方法不多介绍了,因为它有个硬伤就是它会一次将读入文件的所有内容,所以读大文件,会把你内存吃满。

2、readline()方法:这个函数在某些场景有估计会用到,它的作用就是每次从文件中读取一行出来,我们看个例子:

这个是每次读取一行,所以需要用到while 循环,用if来判断文件是否已经结束,如果结束就跳出,否则打印改行。

3、readlines()方法:这个方法我用的不多,因为它也有个硬伤就是它返回一个列表,所以当文件足够大的时候,返回的列表就会异常的大,就会非常慢,不过它的好处就是可以快速释放文件资源,我们了解下就可以,对付一般文件还是可以的,例子如下:

4、采用文件迭代的方式访问文件,这种方式应该是最常用的读取文件方式了,因为我们可以直接迭代文件对象,例子如下:

 

以上就是读取文件的方法了,掌握了这几种基本就可以了,现在我们来看看如何将我们程序的结果写入到文件中, 写文件就用write()方法,不过有很多细节需要注意,我们先来看个简单的,就是我们把读出的文件写入到另一个文件里,如下:

因为要生成一个新文件,所以需要打开一个新文件用来写入。

刚才为什么write()方法有些小细节呢,就是日常我们操作做,会出现往文件中写入中文的情况,如果你不进行编码,写入的中文是无法识别的,这时候就需要在写入前进行将字符串编码,例如将字符串编码为gb2312或utf-8,

 

当然如果是脚本,需要在脚本头部加上:

这篇就到这里吧,本来想把CSV文件如何生成也一起写了,但发现篇幅有点长,就留到下篇吧,当然这篇算是基础中的基础了,关于读出的行如何进行处理,我并没有写任何逻辑去深入展开,因为涉及一些正则方面的知识,后续可以跟正则一起介绍。

发表评论