前言
常见的文件类型有文本文件、图片、音频、视频等,而在同一种文件类型中还存在着不同格式的,如 .txt 文件、.doc 文件、.docx 文件、.csv 文件等。本文将介绍如何通过python代码打开这些文件,并查看编辑文件中的内容。
一、通过python内置函数读写文件
python语言解释器中内置了操作文件的函数,我们可以用这些内置函数完成对文件的读写。
1.open()函数
在读写文件之前我们首先要使用 open() 函数打开文件,open() 函数的格式为:
<变量名> = open(<文件名>, <打开模式>)
open()函数有两个参数:文件名和打开模式。
文件名可以是单独的文件名字,也可以是包含完整路径的名字。在写文件名时需包含文件名后缀。
打开模式,open()函数提供了七种基本的打开模式:
文件的打开模式 | 含义 |
'r' | 只读模式,如果文件不存在,返回异常FileNotFoundError,默认值 |
'w' | 覆盖写模式,文件不存在则创建,存在则完全覆盖 |
'x' | 创建写模式,文件不存在则创建,存在则返回异常FileExistsError |
'a' | 追加写模式,文件不存在则创建,存在则在文件最后追加内容 |
'b' | 二进制文件模式 |
't' | 文本文件模式,默认值 |
'+' | 与 r/w/x/a 一同使用,在原功能基础上增加同时读写功能 |
打开模式使用字符串方式表示,根据字符串定义,单引号或双引号均可。上述打开模式中,‘r’、‘w’、‘x’、‘a’ 可以和 ‘b’、‘t’、‘+’ 组合使用,既表达读写又表达文件模式的方式。
例如,open() 函数默认采用 'rt' (文本只读)模式,读入程序所在目录的 test.txt 文件:
第一种:textfile = open('test.txt', 'rt')
第二种:textfile = open('test.txt', 'r')
第三种:textfile = open('test.txt')
在读取图片、音频、视频等二进制文件时,需使用二进制模式 ‘b’。
例如,打开一个名为 music.mp3 的音频文件:
binfile = open('music.mp3', 'rb')
文件使用结束后要用 close() 方法关闭,释放文件使用权。例如,关闭上方读取music.mp3 音频文件的数据流:
binfile.close()
2.文件的读写
在使用 open() 函数打开文件后,我们就可以根据打开方式的不同对文件进行相应的操作。
当文件以文本方式打开时,读写按照字符串方式,采用当前计算机使用的编码或指定编码;当文件以二进制方式打开时,读写按照字节流方式。
Python提供了 4 个常用的文件内容读取的方法。
操作方法 | 含义 |
<file>.readall() | 读入整个文件内容,返回一个字符串或字节流 |
<file>.read(size=-1) | 从文件中读取整个文件的内容,如果给出参数,读入前 size 长度的字符串或字节流 |
<file>.readline(size=-1) | 从文件中读入一行内容,如果给出参数,读入该行前 size 长度字符串或字节流 |
<file>.readlines(size=-1) | 从文件中读入所有行,以每行为元素形成一个列表,如果给出参数读入 hint 行 |
Python提供了 3 个文件写入的常用方法。
操作方法 | 含义 |
<file>.write(s) | 将文件写入一个字符串或字节流 |
<file>.writelines(lines) | 将一个元素全为字符串的列表写入文件 |
<file>.seek(offset) | 改变当前文件操作指针的位置,offset的值: 0——文件开头;1——当前位置;2——文件末尾 |
3.文件的关闭
文件使用结束后要用 close() 方法关闭,释放文件使用权。例如,关闭上方读取music.mp3 音频文件的数据流:
binfile.close()
总结
本文简单介绍了如何通过Python内置函数读取并操作文件。