Python:在文本文件中的选项卡后插入文本

时间:2015-05-19 10:39:32

标签: python text seek

我想在文本文件中的制表符后面插入一些文字。我怎么能在python中这样做?

我尝试过使用Python seek()函数。但似乎并没有将'\t'(对于制表符)作为参数。

感谢。

4 个答案:

答案 0 :(得分:2)

你无法使用寻求。它用于将文件光标定位在文件中的某个位置。 (即将光标设置为一个位置作为字符数。)

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

这样做的一种方法是:

fd = open(filename, "r+")
text = fd.read()
text = text.replace("\t", "\t" + "Inserted text", 1)
fd.seek(0)
fd.write(text)
fd.close()

答案 1 :(得分:1)

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)

答案 2 :(得分:1)

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

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方法的第三个参数只会替换它在字符串中找到的第一个标签。

答案 3 :(得分:0)

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