03-Python文件操作

时间:2021-09-01
本文章向大家介绍03-Python文件操作,主要包括03-Python文件操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Python文件操作基本流程

  用python如何操作一个文件呢,基本上可以分为三个步骤:

   1、打开文件。

   2、操作文件。

   3、关闭文件。

#1、打开文件,得到文件句柄并赋值给一个变量。
f=open('./file.txt',mode='r',encoding='utf-8')

2、通过句柄对文件进行操作。 c=f.read() print(c)

#3、关闭文件 f.close()

代码解释:

f:就是一个变量,它也被称为文件的句柄。

open():是python打开文件的一个函数方法。

mode:定义我们的操作方法,r为只读

enconding:声明打开文件使用的编码本,文本用什么编码保存,就用什么编码打开。

f.read:操作文件,比如读取、写内容等,必须通过文件句柄进行操作。

close():关闭文件句柄

文件操作常用方法

文件操作:读,r模式

  以只读的方式打开文件,文件的指针会放在文件的开头,如果不设置模式,这个是默认模式。

f=open('file.txt',mode='r',encoding='utf-8')
c=f.read()
print(c)
f.close()

read()
  read()文件中的内容全部被读取出来,弊端:如果文件太大就会占很懂得内存,导致内存崩溃。

 read(n)

  read(n)在r模式下,n按照字符读取。

 readline()

  readline()每次只读取一行,readline()读取出来得数据在后面都有一个\n

 readlines()

readlines()返回一个列表,列表里的每个元素是原文件的没一行,如果文件太大,占内存,容易崩溃。

 以上的几种方法都不太好,因为文件过大,会导致内存不够,程序崩溃,我们可以用以下的方法来读取:

for循环读取

  可以通过for循环读取,文件句柄是一个迭代器,他的特点就是每次循环旨在内存中占一行的数据,非常节省内存。

 rb模式

  rb模式,以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头,带b的都是以二进制的格式操作文件,他们主要是操作非文字的文件,如:图片,音频,视频等,该模式不用声明编码方式。

f = open('mm2.jpg', mode='rb')
c=f.read()
print(c)
f.close()

 

文件操作:写 

   写,就是在文件中写入内容,这里也有四

 w模式

  如果文件不存在,那么它会先创建文件,然后再写入内容

如果文件存在,会先清除文件的内容,再写入。

 wb模式

wb模式,以二进制格式打开一个文件,只用于写入,如果文件存在,就清除原有内容,重新写入,如果文件不存在,就创建文件再写入,该模式一般用于非文本文件,如:图片、音频、视频等。

文件操作:追加

  追加就是再文件中追加内容,它也有四种模式:a,ab,a+,a+b
a模式
  打开一个文件用于追加,如果文件存在,文件指针放在文件的结尾,也就是说新的内容会写入到已有的内容之后。如果该文件不存在,创建新的文件再写入。

 文件操作:其他模式

  带+号的模式,+就是加一个功能,比如r模式是只读模式,在这种模式下,文件句柄只能进行类似read的只读操作,而不能进行write写的操作。所以我们想让这个文件句柄既可以进行读的操作,又可以进行写的操作,这个就是+模式:r+读写模式,w+写读模式,a+写读模式,r+b以byte类型的读写模式。

#1. 打开文件的模式有(默认为文本模式):
r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
w,只写模式【不可读;不存在则创建;存在则清空内容】
a, 只追加写模式【不可读;不存在则创建;存在则只追加内容】

#2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)
rb 
wb
ab
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

#3,‘+’模式(就是增加了一个功能)
r+, 读写【可读,可写】
w+,写读【可写,可读】
a+, 写读【可写,可读】

#4,以bytes类型操作的读写,写读,写读模式
r+b, 读写【可读,可写】
w+b,写读【可写,可读】
a+b, 写读【可写,可读】

r+模式
  r+用于打开一个文件用于读写,文件的指针默认会放在文件内容结尾追加

原文地址:https://www.cnblogs.com/xdmz/p/15213629.html