我正在为学校做一个python项目,并且无法弄清楚如何完成它。我需要逐行搜索特定单词的txt文件。如果单词在那里,那么我需要在单词下面附加3行文件以添加新条目。任何帮助,将不胜感激!这看起来很容易,我只是想不通怎么做:/
这是我到目前为止所做的:
myFile = open("userinterface.txt", "r")
searchlines = myFile.readlines()
myFile.close()
for i, line in enumerate(searchlines):
if (currentusername) in line:
print(line)
else:
print('invalid')
我真正需要帮助的是在我找到的行下面的3行写入文件。
答案 0 :(得分:0)
假设我有一个名为' some_text.txt'数字1到10逐行写出。然后如果使用以下内容创建一个名为homework.py的python模块:
special_word = 'four'
# assuming this homework.py is in the same directory 'some_text.txt'
with open('some_text.txt', 'r') as infile:
text = infile.readlines()
for i, line in enumerate(text):
if line.strip() == special_word:
if i < len(text):
text[i+3] = line.strip()+text[i+3]
with open('new_file.txt', 'w') as outfile:
for line in text:
outfile.write(line)
然后你可以在命令行执行它:
$python homework.py
答案 1 :(得分:0)
如果不覆盖以下文本,则无法在文件中间附加文本。相反,您可以创建另一个文件(输出文件)并以您希望的方式编写文本
infile.txt
您好
你好吗?
好
有趣
祝你有个美好的一天
尼斯
世界
infile = open('path/to/infile.txt','r')
outfile = open('path/to/outfile.txt','w')
word_to_search = "good"
lines = infile.readlines()
for line in lines:
if word_to_search in line.lower():
outfile.write(line+"\n\nNew Entry\n")
else:
outfile.write(line)
infile.close()
outfile.close()
outfile:
您好
你好吗?
好的
新条目
有趣
祝你有个美好的一天
新条目
尼斯
世界