【发布时间】:2014-10-28 22:27:40
【问题描述】:
我正在尝试在文件的行中搜索子字符串,并在找到的行之后立即插入类似的行。尽管使用fileinput 方法有类似的解决方案,但我不知道如何在我的情况下使用它。
这是我尝试过的:
list = ["abc", "pqr", "xyz"]
inputfile = open (somefile.txt, 'a+')
for line in <inputfile>:
if 'stringstosearch' in line:
for <item> in list:
new_line = "new_line with %s" %(item)
inputfile.write(new_line + "\n")
break
inputfile.close()
例如,如果文本文件是:
Torquent scelerisque aptent hac rhoncus vel
Turpis vestibulum tellus laoreet mollis conubia facilisis tempor nec semper
在 mi mauris etiam quisque sem congue est velit lacus convallis amet ante ad
整数 maecenas semper quisque nisi hendrerit, libero feugiat cursus euismod accumsan
Dui sed magna vivamus augue ac quisque ac mauris torquent eros taciti
Conubia curae vel himenaeos dictumst sed at
string to search = "mauris etiam quisque"
list = ["abc", "pqr", "xyz" ]
文件写入后的预期输出:
Torquent scelerisque aptent hac rhoncus vel
Turpis vestibulum tellus laoreet mollis conubia facilisis tempor nec semper
在 mi mauris etiam quisque sem congue est velit lacus convallis amet ante ad
带有 abc 的新行
带有 pqr 的新行
带有 xyz 的新行
整数 maecenas semper quisque nisi hendrerit, libero feugiat cursus euismod accumsan
Dui sed magna vivamus augue ac quisque ac mauris torquent eros taciti
Conubia curae vel himenaeos dictumst sed at
【问题讨论】:
-
如果
mauris etiam quisque重复怎么办?或者这是否只处理第一次出现并且应该break之后? -
你为什么不知道如何在你的情况下使用
fileinput?你尝试了什么,它是如何失败的?
标签: python python-2.7