【发布时间】:2014-02-27 07:05:02
【问题描述】:
我有这段代码 sn-p,我正在尝试使用 python 从文件末尾向后搜索:
f=open('D:\SGStat.txt','a');
f.seek(0,2)
f.seek(-3,2)
这会在运行时引发以下异常:
f.seek(-3,2)
io.UnsupportedOperation: can't do nonzero end-relative seeks
我在这里错过了什么吗?
【问题讨论】:
-
Python 3 仅支持从文件开头查找文本文件。如果要获取文件的最后三行,可以使用 deque(f, 3) 仅遍历这些行。
-
您不能再按设计寻找文本文件中的任意位置。这是因为像 UTF-8 这样的编码每个字符的字节数是不可预测的。 Seek() 不能盲目地寻找文件中的某个位置并期望位于字符的开头。
标签: python python-3.x file