在文件开头写入内容
header_content = "####\n" # 以文本增强模式打开 with open(file_path, 'r+') as fp: content = fp.read() fp.seek(0, 0) fp.write(header_content + content)
1. 原理
这里通过使用seek()
函数移动文件指针来实。seek(offset, whence)
函数接收两个参数。其中whence
代表指针位置,默认参数为0
,表示文件指针在文件开头,除此之外还可以为1
(代表当前位置)和 2
(文件末尾)。offset
是在whence
的基础上进行定义的,即根据指针whence
所规定的位置的基础上再对指针位置进行偏移。
2. 注意
2.1. 在文本模式下,如果offset
是一个不为0
的数,那么offset
的值只能等于fp.tell()
,否则会报错。
2.2. offset
只有在二进制模式下才可以为负,即可以将文件指针向前移动。
2.3. fp.tell()
在二进制模式下返回从文件开头到指针处的字节数,在文本模式下返回一个不确定(飘忽不定)的数字,主要是因为tell()
本质是返回字节数,在读取文本时,会根据指定的编码将二进制数据转换成可见字符,不同的编码方式导致每一个字符使用的字节数不相同,所以返回的数字也就与真实可见的字符数没有一个确切的关系了,即不确定(飘忽不定)的。
3. 关注我