打开文件:
使用 open()
函数,其中文件路径可以是相对路径或绝对路径。
模式除了常见的 r
(只读)、w
(写入,会覆盖原有内容)、a
(追加)外,还有一些其他组合模式,如 r+
(读写)、w+
(读写,会覆盖或创建新文件)、a+
(读写,可追加)等。
读取文件:
read()
函数会一次性读取整个文件的内容,返回一个字符串。如果文件较大,可能会占用较多内存。readline()
每次读取一行内容,返回一个字符串,再次调用会读取下一行,直到文件末尾。readlines()
则将所有行一次性读取并存储到一个列表中,列表中的每个元素是一行内容。
写入文件:
write()
方法接收一个字符串作为参数,将其写入到文件中。
关闭文件:
调用 close()
非常重要,它确保与文件相关的系统资源被正确释放,避免资源泄漏。如果不及时关闭,可能会导致一些问题,如文件被占用而无法进行其他操作。同时,在使用上下文管理器
(如 with
语句)时,在语句块结束后会自动关闭文件,无需手动调用 close()
,这是一种更简洁和安全的方式。
上下文管理器:
上下文管理器是一种编程机制。
简单来说,它定义了在一段代码执行前和执行后的特定行为。
在文件操作中,通过 with
语句使用上下文管理器,在进入 with
代码块时,会自动执行与打开文件相关的操作(比如调用 open
函数打开文件),当代码块执行结束(无论正常结束还是因异常结束),会自动执行后续的清理操作(比如关闭文件)。
它的好处是可以确保相关资源的正确初始化和释放,避免因人为疏忽导致资源未正确处理而引发的问题,使得代码更加简洁、可靠和易于维护。
文件指针:
- 指示当前读取或写入的位置。
- 使用tell()方法可以查看指针位置
- 使用
seek()
方法可以将文件指针移动到指定的字节位置。
标准输入输出:
input()
用于从控制台获取用户输入。print()
用于向控制台输出信息。
二进制文件操作:
二进制文件是一种以二进制形式存储信息的文件类型。
与文本文件不同,二进制文件不是以人类可读的字符形式来表示信息,而是使用二进制编码来表示数据。
这些数据可以是各种各样的,比如图像文件中的像素数据、音频文件中的声音波形数据、可执行文件中的机器指令和数据结构等等。
我们依然可以使用 open()
函数来打开二进制文件,只是要添加 'b'
模式标志,比如 open('image.jpg', 'rb')
表示以二进制只读模式打开图像文件。
在读取和写入二进制数据时,通常使用字节数组等方式来处理,以确保数据的准确性和完整性。
字节数组(Byte Array)是一种数据结构。
它是由一系列字节(8 位二进制数)组成的有序集合。字节数组可以用来存储和处理二进制数据。
与普通的数组类似,字节数组中的每个元素都是一个字节,可以通过索引来访问和操作特定位置的字节。
在处理二进制文件等场景中,字节数组常被用来高效地存储和传输二进制数据,方便进行数据的读取、写入、修改等操作。它为处理大量的二进制信息提供了一种方便而灵活的方式。
对于图像、音频等二进制数据,它们有特定的格式和编码规则,在操作时需要遵循这些规则来正确地解析