我正在尝试制作一个将日志条目插入文本文件的程序。我遇到的问题是我逐行读取特定行的文件,并希望在行之前写入。 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
为什么会这样切断?
答案 0 :(得分:1)
我想我找到了解决方案。我不确定为什么,但当我使用rb +作为模式而不是r +时,它会很好地读取整行。