第十六课 基础文件操作
今天我们来说说文件操作。文件操作在程序编写里有着举足轻重的作用。文件操作,主要包含文件的输入和输出。学会了文件操作,就可以写出更符合实际需求的脚本。
我会先介绍两种主要的I/O模式,然后介绍一下文件的手动opening和closing。最后,介绍更加自动化的操作方式。
两种主要I/O操作
有好多方式进行文件I/O操作。不过,最常使用的还是其中的两种。一种是读文件(‘r’),另一种是写文件(‘w’)。这两个操作的含义就是字面意思,从文件读数据和向文件写数据。
注意
标准的写操作会把文件覆盖(这意味着原有的文件内容会丢失),我们在后面的文章里会介绍如何做到这一点。
手动文件I/O操作
当我们进行文件I/O操作的时候,最好别用这种方式进行文件操作。举例来说,错误的关闭文件可能会导致一些严重的错误。虽然这不是推荐的操作,但是却很适合用来入门。
我们首先演示写文件。(此演示在linux下进行)首先创建一个叫做file的文件,然后在里面写上(只是用文本编辑器打开和写入)”Hello,Null Byte!”.
现在我们有了个文件。在进行文件写操作的时候,首先要在python里打开这个文件。这个过程会建立一个对象,所以我们需要用一个变量把这个对象存进去。在例子中,我们用变量‘file’来存贮这个对象。
当我们打开文件的时候,需要使用open()函数,并对传入文件路径和要进行什么样的文件操作。看例子:
我们此时已经通过只读方式打开了文件。现在来通过打印变量file的内容来看看到底读到了什么:
我们可以看到除了读到文件内容之外,还有一行空白。这其实是换行符\n。现在我们成功的读到了文件,一定一定要记得把文件关上。如果不关闭文件,就会导致一些错误,文件也可能会被损坏。我们可以用.close()方法来关闭文件对象。
现在,我们已经成功的打开、读、关闭了文件。下面来试试写文件。
写文件只要把open()的第二个参数换成’w’就可以了。向文件‘file’中写入”Hello,world!\n”:
记得手动加上\n,然后是文件的关闭操作。现在再看看文件里的内容:
好了,这就是手动操作文件的全部内容。
自动文件I/O操作
‘自动’,意味着不再需要手动打开或者关闭文件。我们可以用with关键字和as关键字来打开和关闭文件。这么做的格式是
with open(‘文件路径’,‘操作方式’) as 存储文件的变量名
你可能注意到提示符的样子从>>>变成了… 这是因为使用with和as关键字的时候,所有的io操作都必须在with/as的body部分里。
这样就不用手动关闭文件了。下面演示一下写操作:
现在来看看文件写进去了没:
总结
今天学了些挺有用的东西,希望大家都能看得懂。不久之后我们会学习一些更复杂的io操作。