这是我通过使用f.seek()方法寻找位置来从文件中获取行的代码但是输出错误。它是从第一行的中间打印。 你可以帮我解决这个问题吗?
f=open(r"sample_text_file","r")
last_pos=int(f.read())
f1=open(r"C:\Users\ddadi\Documents\project2\check\log_file3.log","r")
f1.seek(last_pos)
for i in f1:
print i
last_position=f1.tell()
with open('sample_text.txt', 'a') as handle:
handle.write(str(last_position))
sample_text文件包含f1.tell()
返回的文件指针偏移量答案 0 :(得分:1)
如果它从一条线的中间打印,几乎可以肯定是因为你的偏移是错误的。你不能解释你是如何通过你用seek
作为论据的神奇数字来解释的,如果没有这些信息,就很难更精确地帮助你。
seek
并不是一个好主意。尝试使用open(..., 'rb')
并查看该过程是否更具可预测性。听起来好像你可能通过在文本模式下读取后计算字符来获得偏移量,但好的旧Windows包含文本文件中的回车字符,在程序看到文本之前由Python I / O例程删除。/ p>