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

Python:在文本文件中的选项卡后插入文本,python,text,seek,Python,Text,Seek,我想在文本文件中的制表符后插入一些文本。如何在python中实现这一点 我尝试过使用Python seek()函数。但是is似乎没有将'\t'(对于tab)作为参数 谢谢。您不能使用seek。它用于将文件光标定位在文件中的某个位置。(即,将光标设置为字符计数的位置) >>> for lines in textfile: ... lines = lines.split("\t") ... lines[1] = "This is your inserted stri

我想在文本文件中的制表符后插入一些文本。如何在python中实现这一点

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


谢谢。

您不能使用seek。它用于将文件光标定位在文件中的某个位置。(即,将光标设置为字符计数的位置)

>>> 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()

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

如果确实要插入,则必须重写光标位置后面的所有内容,否则插入内容会覆盖文件的某些部分

一种方法是:

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

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

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

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

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

要在所有制表符之后插入,还是在特定制表符之后插入?我要在文件的第一个制表符之后插入。要在所有制表符之后插入,还是一个特定的选项卡?我想在文件的第一个选项卡之后插入。这实际上会替换第一个和第二个选项卡之间的所有内容,而OP想在第一个选项卡之后插入一些内容。True。有点像是有意的,但显然不是。感谢这实际上将替换第一个和第二个选项卡之间的所有内容,而OP希望在第一个选项卡之后插入内容。True。有点像是有意的,但显然不是。谢谢我认为你想做
txt.read()
而不是
txt.read
。替换(“\t”,“\t”+插入的文本,1)
而不是
。替换(“\t”,“\t”,1)
@Elisha:谢谢你发现了这一点,请随意纠正这样明显的错误,毕竟这就是你可以编辑其他帖子的原因(我相信)。我想你想做
txt.read()
而不是
txt.read
。替换(“\t”,“\t”+插入的文本,1)
而不是
。替换(“\t”,“\t”,1)
@Elisha:谢谢你发现了这一点,请随意更正这样明显的错误,毕竟这就是你可以编辑其他帖子的原因(我相信)。