我的意图是在与某些条件匹配的某些行之间添加一些行(这些条件不是直接的,而是从代码逻辑派生的)。 我使用tell()函数来获取新行的放置位置。另外,我使用readlines()将文本部分保存到这个位置,并将文件的其余部分保存在两个列表中,如下所示。你知道吗
这样,我计划将新行添加到第一个列表中,然后附加到第二个列表中,以便将它们一起写入原始文件。你知道吗
fp.open("path", "r")
<some logic to find where the new lines are to be inserted>
insertPos = fp.tell()
firstPart = fp.readlines(insertPos)
secondPart = fp.readlines()
firstPart.insert(len(firstPart)+1, newLines)
newContent = firstPart+secondPart)
fp.writelines(newContent)
fp.close()
但问题是, 当readlines()使用tell()的第一个输出完成时,为了放置合并列表,它没有指向文件中的正确行。它向前移动了更多的线。i、 第一部分并不是完全在insertPos处分裂。 有什么我不知道的吗?任何帮助都将不胜感激。你知道吗
如果文件不是很大,我会这样做,而不是搞乱缓冲区的位置:
如果您只是将整个文件读入一个列表,然后修改该列表并将其写出,那么您的逻辑就会简单得多。你知道吗
在这里,我们使用切片表示法将整个列表
lines_to_add
添加到位置loc
:那就写出来吧。你知道吗
相关问题 更多 >
编程相关推荐