f = open('filept_test.py', 'rb')
# 判断文件指针的位置
print(f.tell()) # 0
# 将文件指针移动到3处
f.seek(3)
print(f.tell()) # 3
# 读取一个字节,文件指针自动后移1个数据
print(f.read(1)) # o
print(f.tell()) # 4
# 将文件指针移动到5处
f.seek(5)
print(f.tell()) # 5
# 将文件指针向后移动5个数据
f.seek(5, 1)
print(f.tell()) # 10
# 将文件指针移动到倒数第10处
f.seek(-10, 2)
print(f.tell())
print(f.read(1)) # d
上面程序示范了使用 seek() 方法来移动文件指针,包括从文件开头、指针当前位置、文件结尾处开始计算。运行上面程序,结合程序输出结果可以体会文件指针移动的效果。
import os
f = open('x.txt', 'w+')
# os.linesep代表当前操作系统上的换行符
f.write('我爱Python' + os.linesep)
f.writelines(('土门壁甚坚,'+ os.linesep,
'杏园度亦难。'+ os.linesep,
'势异邺城下,'+ os.linesep,
'纵死时犹宽。'+ os.linesep))
上面程序中第 4 行代码调用 write() 方法输出单个字符串;第 5 行代码则调用 writelines() 方法输出多个字符串。
import os
f = open('y.txt', 'wb+')
# os.linesep代表当前操作系统上的换行符
f.write(('我爱Python' + os.linesep).encode('utf-8'))
f.writelines((('土门壁甚坚,'+ os.linesep).encode('utf-8'),
('杏园度亦难。'+ os.linesep).encode('utf-8'),
('势异邺城下,'+ os.linesep).encode('utf-8'),
('纵死时犹宽。'+ os.linesep).encode('utf-8')))
上面程序中的代码以 wb+ 模式打开文件,这意味着程序会以二进制形式来输出文件,此时程序输出的必须是宇节串,不能是字符串。因此,程序调用 encode() 方法将字符串转换成字节串,转换时指定使用 UTF-8 字符集,这意味着程序将会以 UTF-8 字符集来保存文件。
import os
f = open('z.txt', 'a+')
# os.linesep代表当前操作系统上的换行符
f.write('我爱Python' + os.linesep)
f.writelines(('土门壁甚坚,'+ os.linesep,
'杏园度亦难。'+ os.linesep,
'势异邺城下,'+ os.linesep,
'纵死时犹宽。'+ os.linesep))
上面程序以 a+ 模式打开指定文件,这意味着以追加模式来打开文件,因此,使用 open() 函数打开文件后,不会立即清空文件内容,并且会将文件指针移动到文件结尾处,程序会在文件结尾处追加内容。
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有