用python编写特定行号的简单、高效的方法

2024-04-19 19:23:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件,我需要在一个特定的行写一些内容。我知道哪些行,我想覆盖该行的内容。你知道吗

例如,我有一个100行的文本文件,我想专门写到第70行。我知道我可以逐行阅读并保留一个计数器,当我到达第70行时,我可以写下我需要的行。我还可以读取文件的全部内容,将其拆分为一个列表,覆盖所需的位置并写回。你知道吗

不过,我想找一些更简单的东西,比如:

somelibrary.writeline(file, 70, "Blah blah")

在Python中有这样的东西吗?你知道吗


Tags: 文件内容列表计数器fileblah文本文件全部内容
2条回答

在特殊情况下,你的线总是一样的长度,你可以使用

with open('myfile.txt', 'rb+') as f:
    f.seek(FIXED_LINE_LENGTH * line_number)
    f.write(new_line)

除非新行与旧行一样长,否则最好的选择是重写文件。你知道吗

最简单的方法是使用^{} module

import sys, fileinput

for count, line in enumerate(fileinput.input(filename, inplace=True)):
    if count == 69:  # Python counts from 0
        line = newvalue
    sys.stdout.write(line)

这将创建文件的备份,并输出到替换旧文件的文件。写入sys.stdout写入的文件多于新文件(另一种方法是使用print,但line仍包含换行符)。你知道吗

相关问题 更多 >