假设你想在文件开头添加一行,但是使用标准追加模式Python,该行被追加到文件末尾。如何才能实现这一目标?
实现
有两种方法可以实现这一目标:
第一种方法(内存密集型):
<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>
在此方法中,将整个文件读入内存,在开头添加行,然后将修改的内容覆盖回文件中。
第二种方式(流式传输):
<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>
此方法逐行流式传输文件,覆盖原始文件。它使用 fileinput 模块迭代各行,并将给定行插入到第一行的开头。
方法的选择取决于文件大小和可用内存。对于大文件,首选第二种方式,以避免内存问题。
以上是如何在 Python 中向文件开头添加一行?的详细内容。更多信息请关注PHP中文网其他相关文章!