在python中的txt文件中找到一个单词后附加文件?

时间:2018-01-31 09:34:57

标签: python python-2.7 lines

我正在为学校做一个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行写入文件。

2 个答案:

答案 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:

您好
你好吗? 好的

新条目
有趣
祝你有个美好的一天

新条目
尼斯
世界