Python 查找后未读取所有字符

Python 查找后未读取所有字符,python,python-2.7,file,file-read,Python,Python 2.7,File,File Read,我正在尝试制作一个程序,将日志条目插入到文本文件中。我遇到的问题是,我逐行阅读文件中的某一行,并希望在该行之前进行写入。Python正确地读取了我要查找的行,但是,当我试图返回到前面的位置时,它不再读取整行。我检查了偏移量,它是完全相同的,但由于某种原因,整行无法读取 def fileWriter(): immediateTrigger = 0 returnTrigger = 0; with open('C:\\testData.txt', 'r+') as file:

我正在尝试制作一个程序,将日志条目插入到文本文件中。我遇到的问题是,我逐行阅读文件中的某一行,并希望在该行之前进行写入。Python正确地读取了我要查找的行,但是,当我试图返回到前面的位置时,它不再读取整行。我检查了偏移量,它是完全相同的,但由于某种原因,整行无法读取

def fileWriter():
    immediateTrigger = 0
    returnTrigger = 0;
    with open('C:\\testData.txt', 'r+') as file:
        for line in iter(file.readline, ''):
            #line = file.readline()
            if 'Beginning of text entries' in line:
                print('arrived at text entries')
                print(file.tell())
                print(line)
                immediateTrigger = 1
                file_pos = file.tell()
            while not line.strip() and immediateTrigger == 1:
                #print('here')
                prev_pos = file.tell()
                print(str(prev_pos) + 'before')
                newLine = file.readline()
                print(newLine)
                if 'Text Entry 25' in newLine:
                    file.seek(prev_pos)
                    print(str(file.tell()) + 'after')
                    print(file.readline()')
                    immediateTrigger = 0
我得到的结果是:

到达文本条目
文本条目1:第1次修订
(随机输入…)
36800之前
文本条目25:第25次修订
36800之后
试试第25版:第25版

为什么会这样断开?

我想我找到了解决办法。我不知道为什么,但当我使用rb+作为模式而不是r+时,它可以很好地读取整行。

如果使用
read(20)
,您是否看到适当的输出?只是尝试了一下。它会导致看到更多的条目,但仍然不是全部内容。在代码中,打印文件光标前后位置的两个打印语句之间没有打印语句。但是在您的输出中有一个额外的输出行。这怎么可能?这不是精确的输出。很抱歉,但实际代码包含工作信息,我无法在代码中邮寄打印语句。纠正