1、文本文件和二进制文件
按文件中数据组织形式,我们把文件分为文本文件和二进制文件两大类,
1. 文本文件
文本文件存储的是普通“字符”文本,默认为unicode字符集(两个字节表示一个字符,65535),可以使用记事本程序打开。但是,像word文件件编辑的文档不是文本文件,无法使用记事本打开。
2. 二进制文件(大多数都是二进制文件)
二进制文件把数据内容用“字节”进行存储,无法用记事本打开。必须使用专用的软件解码。常见的有:MP4视频文作、MP3音频文件、JPG图片、doC文档等等。
2、文件操作相关模块概述
3、打开(创建)文件对象:open()
在 Python 中,可以使用内置的 open() 函数来打开文件。open()`函数接受文件路径和打开模式作为参数,并返回一个文件对象,可以用于读取或写入文件内容。
基本语法格式如下:open(文件名[,打开方式])如果只是文件名,代表在当前目录下的文件,文件名可以录入全路径,比如:D:\a\b.txt,为了减少“\”的输入,可以使用原始字符串:r"d:\b.txt","w".
示例:f = open(r"d:\b.txt","W")
打开方式如下:
模式 描述 例如 r 只读read模式 open('file.txt', 'r')
read([size]):从文件中读取size个字符,并作为结果返回。如果没有size参数,则读取整个文件,在文件末尾返回空字符串。
readline():读取一行内容作为结果返回,在文件末尾返回空字符串。
readlines():每一行作为一个字符串存入列表中,返回该列表。w 写模式write;文件不存在则创建,文件存在则清空内容 open('file.txt', 'w') a 追加模式append;如果文件存在则在文件末尾添加内容,
文件不存在则创建open('file.txt', 'a') b 二进制binary模式(可与其他模式组合使用) - 读+写;以读写方式打开文件 open('file.txt', 'r+') 还可以指定文件的编码格式、处理换行符等参数。
例如,以 UTF-8 编码方式打开文件open('file.txt', 'r', encoding='utf-8') 关闭文件对象(重要!,一定要有):
在使用完文件后,记得调用文件对象的 close()方法关闭文件,或者使用 with 语句来自动管理文件的打开和关闭:示例:
# 打开文件 file_path = 'example.txt' # 文件路径,我在测试时随意选取了桌面上的某个文件,使用的绝对路径with open(file_path, 'r') as file:# 读取文件内容content = file.read()print(content)
在这个示例中,`open()`函数以只读模式('r')打开名为`example.txt`的文件,并使用`with`语句来确保文件在使用完毕后被正确关闭。
例如,逐行读取文件内容,可以使用`readline()`方法或者遍历文件对象来一行一行地读取:
with open(file_path, 'r') as file:for line in file:print(line.strip()) # 使用strip()方法去除行尾的换行符
示例:读取一个文件的前4个字符(空格等都算一个字符)
with open(r"xxx","r",encoding="utf-8") as f: # xxx = 文件路径print(f.read(4))# 读取前4个字符
示例,使用迭代器(每次返回一行)读取文本文件
with open(r"XXX","r",encoding="utf-8") as f:for a in f:print(a,end=" ")# 迭代器
在这段代码中,`for a in f:` 这一行实际上是在遍历文件对象 `f`,Python 中的文件对象是可迭代的。在文件对象上进行迭代时,每次迭代会返回文件的一行内容(包括换行符)作为字符串。因此,在这段代码中,变量 `a` 将依次表示文件中的每一行内容(包括换行符),并且通过 `print(a, end=" ")` 打印出来。