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
方法的第三个参数只会替换它在字符串中找到的第一个制表符。
我想在文本文件中的制表符后插入一些文本。我如何在 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
方法的第三个参数只会替换它在字符串中找到的第一个制表符。