当前位置: 首页 > 面试题库 >

如何在不删除原始内容的情况下在文本文件中的特定位置书写?

卫甫
2023-03-14
问题内容

我已经用Python编写了一个遍历文件的代码,提取所有数字,并将它们加起来。现在,我必须在文件的特定位置写入“总计”(整数)something something something...Total: __00__ something something

我必须将精确计算的总数写在该Total: __部分的后面,这意味着结果行将变为,例如:something something something...Total: __35__ something something

到目前为止,我在写部分中有以下内容:

import re
f1 = open("filename.txt", 'r+')
for line in f1:
    if '__' in line and 'Total:' in line:
        location = re.search(r'__', line)
print(location)

打印输出: <_sre.SRE_Match object; span=(21, 23), match='__'>

因此它在21到23的位置找到了“
__”,这意味着我想在24位置插入总数。我知道我必须以某种方式使用此seek()方法。但是我已经尝试过几次并且失败了。任何建议,将不胜感激。

重要说明: 文件的原始内容应保留原样。只有总的变化-没有别的。


问题答案:

如果文件不是特别大,则可以将其内容以字符串(或行列表)的形式读取到内存中,进行替换,然后将内容写回。像这样:

total = 'Total: __{}__'.format(12345)

with open(filename, 'r+') as f:
    contents = f.read().replace('Total: __00__', total)
    f.seek(0)
    f.truncate()
    f.write(contents)


 类似资料:
  • 问题内容: 假设我有一个名为abhishek.txt的文件,其中包含以下行 我是,你叫什么名字。 现在我要写 阿比舍克 在“我是”之后,就像我是Abhishek,..如何直接在此特定位置书写内容。 问题答案: 您不能将数据插入文件中。您可以使用覆盖特定位置的数据。但是,插入操作需要更改其后的所有数据。对于您的情况,请尝试以下类似方法:

  • 问题内容: 我有要在Python中删除的文本文件。我怎么做? 问题答案: 在python中: 或者,如果您已经打开了文件: 在C ++中,您可以使用类似的东西。

  • 问题内容: 如何删除文本文件中的特定字符串? 问题答案: 找到文件。 创建一个临时文件(否则,您必须先将所有内容读取到Java的内存中)。 确定字符集。 确定您要删除的字符串。 打开文件进行读取。 打开临时文件进行写入。 逐行读取文件。 从行中删除字符串。 将其写入临时文件。 关闭读取器和写入器(最好在块中)。 删除文件。 重命名临时文件。 也可以看看: Java教程-课程:基本I / O

  • 在C语言中,我可以用和调用来创建新文件,当且仅当当前没有同名文件时。我还没能在哈斯克尔找到这样做的方法。我更喜欢提供的友好的东西,最好是为我完成所有棘手的异常处理。(我不一定期望它能正确地为我完成,但那是另一回事。)

  • 问题内容: 如何在Python中删除本地文件夹的内容? 当前项目适用于Windows,但我也希望看到* nix。 问题答案: