写在python中特定行的末尾

时间:2014-09-13 11:13:51

标签: python append text-files

我有一个文本文件,其中包含由选项卡分隔的键值对,如下所示:

KEY\tVALUE

我已经在追加模式(a +)中打开了这个文件,所以我可以读写。现在可能会发生特定键具有多于1个值的情况。为此,我希望能够转到该特定键,并将原始值旁边的下一个值写为一个分隔符(或,)。 这是我想做的事情:

import io
ft = io.open("test.txt",'a+')
ft.seek(0)
for line in ft:
    if (line.split('\t')[0] == "querykey"):
        ft.write(unicode("nextvalue"));#Write the another key value beside the original one

现在有两个问题:

  1. 我将遍历文件以查看密钥存在哪一行(有更快的方式吗?)
  2. 我会在该行的末尾写一个字符串。
  3. 如果能得到第二点的帮助,我将不胜感激。

    写入函数始终在文件末尾写入。我该如何写到特定行的末尾?我已经搜索过,并且没有得到关于如何做到这一点的非常明确的答案

1 个答案:

答案 0 :(得分:1)

您可以阅读整个文件内容,进行编辑并将编辑过的内容写入文件。

with open('test.txt') as f:
    lines = f.readlines()
f.close()

f= open('test.txt', 'w')#open file for write
for line in lines:
    if line.split('\t')[0] == "querykey":
        line = line + ',newkey'

    f.write('\n'.join(lines))
f.close()