如何通过从python中的另一个文本文件中寻找位置来打印文件中的行?

时间:2016-09-09 05:37:04

标签: python file

这是我通过使用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()

返回的文件指针偏移量

1 个答案:

答案 0 :(得分:1)

如果它从一条线的中间打印,几乎可以肯定是因为你的偏移是错误的。你不能解释你是如何通过你用seek作为论据的神奇数字来解释的,如果没有这些信息,就很难更精确地帮助你。

然而,有一点是非常重要的。在文本模式下打开的文件(Python中的默认值)上使用seek并不是一个好主意。尝试使用open(..., 'rb')并查看该过程是否更具可预测性。听起来好像你可能通过在文本模式下读取后计算字符来获得偏移量,但好的旧Windows包含文本文件中的回车字符,在程序看到文本之前由Python I / O例程删除。