python文件及目录操作:创建和打开文件

2022-07-3111:16:36编程语言入门到精通Comments1,510 views字数 1652阅读模式

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

    1. 创建和打开文件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

我们在创建或者打开文件的时候需要使用到open()函数,它的语法结构为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

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

在这些参数里,我们常用到的有filname和mode,其余的参数大家可以作简单的了解。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

1) filename文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

filename为要被创建或者打开的文件,使用单引号或者双引号,如果和当前文件在同一文件夹下,可直接写文件的名字,如果不在则要输入绝对路径。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

2) mode文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

mode为参数的设置模式,指定了文件的打开方式,默认打开方式为只读(r),常用的mode参数有r、rb、wb、xb、ab和rt、wt、xt、at,分别对应了二进制文件和文本文件,在使用的时候t可以省略。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

3) buffering文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

可选参数,可以设置缓冲模式,如果为-1则自动设置缓冲区,通常为4096或8192个字节,如果为0则关闭缓冲区直接写入文件中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

4) Encoding和errors文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

前者为打开文件的编码方式,后置指定编码错误的时候处理方式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

5) newline文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

换行方式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

6) closefd文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

文件描述时使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

7) opener文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

文件描述时使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

我们通过例子来创建一个文件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

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

此时我们可以发现在当前目录下多了一个test.txt的文件,我们打开它。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

python文件及目录操作:创建和打开文件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

python文件及目录操作:创建和打开文件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

我们可以发现文本中的内容为我们第二次写入的内容,因为第一次我们是创建了这个文件,然后第二次我们再次打开这个文件,打开方式为可覆盖的方式,第二次我们写入的内容也就覆盖了我们第一次写入的内容,下面表格中统计了常用的打开方式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

参数方式文件
r只读模式需存在
rb二进制格式(打开)、只读模式需存在
R+可读可写入模式,覆盖当前文本内容需存在
rb+二进制格式(打开)、读写模式需存中
w只读模式存在则覆盖,不存在新建
wb二进制格式(打开)、只读模式存在则覆盖,不存在新建
w先清空文件,然后可读写存在则覆盖,不存在新建
wb+二进制格式(打开)、读写模式存在则覆盖,不存在新建
a追加模式打开文件,在文件末尾可写入
ab二进制格式(打开)、后同上
a+以读写模式打开、末尾追加
ab+二进制格式(打开)、后同上

我们在通过一个例子来看一下追加模式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

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

文件内容为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

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

输出结果为二进制格式:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

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

2. 关闭文件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

我们可以在写入之后需要文件关闭掉,以保证文件中的内容不被恶意插件修改,关闭的方式为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

1
file.close()

在文件使用的末尾添加即可。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

    3. 总结文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

关于文件的创建和打开,我们一定要注意它的打开或者创建方式,这点对我们后续的文件操作十分重要,下一节我们学习文件的读取。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26266.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26266.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定