File 查找下一个单词并在文件中替换

File 查找下一个单词并在文件中替换,file,python-3.x,File,Python 3.x,我有一个包含以下句子的文件: File1.txt: "I like Banana" 我想找到出现在“like”后面的单词并替换它。我试过用绳子,效果很好 String = "orange" Text = 'I like Banana' list_of_words = Text.split() for u, word in enumerate(list_of_words): if 'like ' == word: next_word= list_of_words[u+ 1

我有一个包含以下句子的文件:

File1.txt:
"I like Banana"
我想找到出现在“like”后面的单词并替换它。我试过用绳子,效果很好

String = "orange"
Text = 'I like Banana'
list_of_words = Text.split()
for u, word in enumerate(list_of_words):
    if 'like ' == word:
        next_word= list_of_words[u+ 1] 
        Text = Text.replace(next_word,String)
print(Text)
打印:
我喜欢橙色

但当我在文件中应用它时,它只替换(比如)

with open(file, 'r') as open_file:
    read_file = open_file.readlines()
    output_lines = []

for line in read_file:
    words = line.split()
    output_line = []
    for u,word in  enumerate(words):
        if 'like' == word:
            new_word = words[u + 1] 
            word = word.replace(new_word,"Orange")
            output_line.append(word)
#--------------------------------------------------------

    output_lines.append(' '.join(output_line))
    with open(file, 'w') as open_file:
        open_file.write(' '.join(output_lines))  
它将Like替换为橙色:

I Orange Banana
知道为什么吗

试试这个:

file = 'File1.txt'
with open(file, 'r') as open_file:
    read_file = open_file.readlines()
    output_lines = []        

for line in read_file:
    words = line.split()
    for u, word in enumerate(words):
        if 'like' == word:
            words[u + 1] = 'Orange'
#--------------------------------------------------------

    output_lines.append(' '.join(words))
    with open(file, 'w') as open_file:
        open_file.write(' '.join(words))  
我删除了一些不必要的列表。

试试这个:

file = 'File1.txt'
with open(file, 'r') as open_file:
    read_file = open_file.readlines()
    output_lines = []        

for line in read_file:
    words = line.split()
    for u, word in enumerate(words):
        if 'like' == word:
            words[u + 1] = 'Orange'
#--------------------------------------------------------

    output_lines.append(' '.join(words))
    with open(file, 'w') as open_file:
        open_file.write(' '.join(words))  

我删除了一些不必要的列表。

在您的if条件下,您将单词与单词混淆。你可以用“喜欢”代替“喜欢”,而不是“我”、“喜欢”、“香蕉”。因为like不包含“橙子”,所以该行是不允许的

我想你想要更像这样的东西。尽管这仍然需要检查边界(如果u+1超出范围怎么办?)


祝你好运

在您的if条件下,您将单词与单词混淆。你可以用“喜欢”代替“喜欢”,而不是“我”、“喜欢”、“香蕉”。因为like不包含“橙子”,所以该行是不允许的

我想你想要更像这样的东西。尽管这仍然需要检查边界(如果u+1超出范围怎么办?)

祝你好运