Dotcpp  >  编程教程  >  Python文件及目录操作  >  Python文件操作

Python文件操作

点击打开在线编译器,边学边练

我们在前面的学习中,不管是学习哪种数据类型的操作,当我们在程序测试的时候使用的数据都没有进行保存,如果我们要统计分析数据的相关性,那么我们就需要将数据保存到本地文件中,在Python中提供了访问文件、访问目录、读取文件和写入文件的操作,Python的文件对象也被称为类似文件对象或者流,本节我们先进行文件操作的相关学习。

1. 创建和打开文件

我们在创建或者打开文件的时候需要使用到open()函数,它的语法结构为:        

file=open(filename,mode=’r’,buffering=-1,encoding=None,errors=None,newline=None,closefd=True,
openr=None)

在这些参数里,我们常用到的有filname和mode,其余的参数大家可以作简单的了解。

       1) filename

filename为要被创建或者打开的文件,使用单引号或者双引号,如果和当前文件在同一文件夹下,可直接写文件的名字,如果不在则要输入绝对路径。

       2) mode

mode为参数的设置模式,指定了文件的打开方式,默认打开方式为只读(r),常用的mode参数有r、rb、wb、xb、ab和rt、wt、xt、at,分别对应了二进制文件和文本文件,在使用的时候t可以省略。

       3) buffering

可选参数,可以设置缓冲模式,如果为-1则自动设置缓冲区,通常为4096或8192个字节,如果为0则关闭缓冲区直接写入文件中。

       4) Encoding和errors

前者为打开文件的编码方式,后置指定编码错误的时候处理方式。

       5) newline

换行方式。

       6) closefd

文件描述时使用。

       7) opener

文件描述时使用。

我们通过例子来创建一个文件。

file = open('test.txt','w')
file.write('第一次写入')
file = open('test.txt','r+')
file.write('第二次写入覆盖第一次写入')

此时我们可以发现在当前目录下多了一个test.txt的文件,我们打开它。  

python文件1

python文件2

我们可以发现文本中的内容为我们第二次写入的内容,因为第一次我们是创建了这个文件,然后第二次我们再次打开这个文件,打开方式为可覆盖的方式,第二次我们写入的内容也就覆盖了我们第一次写入的内容,下面表格中统计了常用的打开方式。

参数方式文件
r

只读模式

需存在
rb二进制格式(打开)、只读模式

需存在

R+可读可写入模式,覆盖当前文本内容

需存在

rb+

二进制格式(打开)、读写模式

需存中

w

只读模式

存在则覆盖,不存在新建

wb

二进制格式(打开)、只读模式

存在则覆盖,不存在新建

w

先清空文件,然后可读写

存在则覆盖,不存在新建

wb+

二进制格式(打开)、读写模式

存在则覆盖,不存在新建

a

追加模式打开文件,在文件末尾可写入


ab

二进制格式(打开)、后同上


a+

以读写模式打开、末尾追加


ab+

二进制格式(打开)、后同上


我们在通过一个例子来看一下追加模式。

代码如下:

file = open('test.txt','w')
file.write('第一次写入。')
print(file)
file = open('test.txt','a+')
file.write('第二次追加写入。')
print(file)

文件内容为:

第一次写入。第二次追加写入。

输出结果为二进制格式:

<_io.TextIOWrapper name='test.txt' mode='w' encoding='cp936'>
<_io.TextIOWrapper name='test.txt' mode='a+' encoding='cp936'>

2. 关闭文件

我们可以在写入之后需要文件关闭掉,以保证文件中的内容不被恶意插件修改,关闭的方式为:

file.close()

在文件使用的末尾添加即可。

3. 总结

关于文件的创建和打开,我们一定要注意它的打开或者创建方式,这点对我们后续的文件操作十分重要,下一节我们学习文件的读取。



本文固定URL:https://www.dotcpp.com/course/279

下一课:

Python读取文件

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Python教程
第一章 Python入门
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 Python函数
第六章 Python面向对象编程
第七章 Python模块
第八章 Python异常处理和程序调试
第九章 Python文件及目录操作
第十章 PythonGUI编程
第十一章 Python进程和线程
第十二章 Python数据库管理
第十三章 Python算法
第十四章 Python爬虫
第十五章 Python实战项目
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)