我想在文本文件中的制表符后面插入一些文字。我怎么能在python中这样做?
我尝试过使用Python seek()函数。但似乎并没有将'\t'
(对于制表符)作为参数。
感谢。
答案 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"