在文件开头附加一行
修改文件的开头可能具有挑战性,尤其是在文件很大的情况下。传统上,使用单独的文件作为解决方法。但是,使用 Python 有更有效的方法来实现此目的。
了解文件模式
以追加模式('a')打开文件时,任何写入都是无论文件指针的当前位置如何,都定向到文件末尾。当尝试修改文件的开头时,这是有问题的。
解决方案 1:将文件加载到内存中
对于可以加载到内存中的较小文件,可以使用以下代码片段:
<code class="python">def line_prepender(filename, line): with open(filename, 'r+') as f: content = f.read() f.seek(0, 0) f.write(line.rstrip('\r\n') + '\n' + content)</code>
此方法将整个文件读取到内存中,将新行附加到开头,然后重写文件。
解决方案 2:使用 fileinput
对于较大的文件,fileinput 模块可能很有用:
<code class="python">def line_pre_adder(filename, line_to_prepend): f = fileinput.input(filename, inplace=1) for xline in f: if f.isfirstline(): print(line_to_prepend.rstrip('\r\n') + '\n' + xline, end='') else: print(xline, end='')</code>
此方法对于大文件更有效,因为它不会将整个文件加载到内存中。它逐行迭代文件,在第一行的开头打印新行,然后不修改其余行。请注意,此方法要求文件可写。
以上是如何在 Python 中高效地向文件开头添加一行?的详细内容。更多信息请关注PHP中文网其他相关文章!