Python: 在文本文件中的制表符后插入文本

Python: Inserting text after a tab in a text file

我想在文本文件中的制表符后插入一些文本。我如何在 python 中执行此操作?

我试过使用 Python seek() 函数。但是似乎没有将 '\t'(for tab) 作为参数。

谢谢。

>>> for lines in textfile:
...     lines = lines.split("\t")
...     lines[1] = "This is your inserted string after first tab"

你不能为此使用搜索。它用于将文件光标定位在文件中的某个位置。 (即将光标设置为字符数的位置)。

如果你真的想插入你必须重写光标位置后面的所有内容,否则你的插入会覆盖文件的位。

一种方法是这样的:

fd = open(filename, "r+")
text = fd.read()
text = text.replace("\t", "\t" + "Inserted text", 1)
fd.seek(0)
fd.write(text)
fd.close()
text_to_insert = 'some text'
with open('test.txt', 'r+') as f:
    text = f.read()
    tab_position = text.find('\t')
    head, tail = text[:tab_position+1], text[tab_position+1:]
    f.seek(0)
    f.write(head + text_to_insert + tail)

如前所述,您需要为该插入重新编写文件。一种可能的解决方案是将文件保存为字符串,替换第一次出现的制表符,并将派生的字符串写入新文件

file_string = open(somefile).read()

modified_string = file_string.replace("\t", "\t" + "what you want to insert", 1)

with open(new_file, "w") as mod_file:
     mod_file.write(modified_string)

请注意,replace 方法的第三个参数只会替换它在字符串中找到的第一个制表符。