python - 查找后不读取所有字符

标签 python python-2.7 file file-read

我正在尝试制作一个将日志条目插入文本文件的程序。我遇到的问题是我逐行读取文件中的特定行并想在该行之前写入。 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

我得到的输出是:

arrived at text entries
Text Entry 1: The 1st revision
(random entries...)
36800 before
Text Entry 25: The 25th revision
36800 after
try 25: The 25th revision

为什么会这样断掉?

最佳答案

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

关于python - 查找后不读取所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38353994/

相关文章:

python - 如何在 Python 中获取 UTF-8 中的所有空格?

创建具有定义大小的文件

python - vs 代码 Python 扩展数据框未显示在输出中

python - 如何计算列表中子列表的出现次数并将它们显示为 dict

python - 如何使用 python-docx 将复选框表单插入到 .docx 文件中?

python - 使用 open cv 读取图像时遇到问题

python - 使用特定的 python 版本将 python 脚本作为 Upstart 服务运行

新的Python编程

Java 使用文本文件中的一段代码

file - 文件系统实现中的基本概念