bandits24
bandits24

Reputation: 11

Python program that reads a text file for input?

So I'm currently trying to write some code that opens and reads a text file. The text file contains a short paragraph. Within the paragraph, there are some words with brackets around them, which could look like: "the boy [past_tense_verb] into the wall." I am trying to write code that looks for the brackets in the text file, and then displays to the user the words in the text file, for the user to then write some input that will replace the bracketed words. This is the code I have so far:

f = open('madlib.txt', 'r')
for line in f:
    start = line.find('[')+1
    end = line.find(']')+1
    word = line[start:end+1]
    inputword = input('Enter a ' + word + ': ')
    print(line[:start] + inputword + line[end:])

Any help is greatly appreciated - thanks!

Upvotes: 0

Views: 318

Answers (1)

aedry
aedry

Reputation: 346

import re

with open('madlib.txt', 'r') as f:
    data = f.read()

words_to_replace = re.findall(r"\[(\w+)\]", data)
replace_with = []

for idx, i in enumerate(words_to_replace):
    print(f"Type here replace \033[1;31m{i}\033[1;m with:", end =" ")
    a = input()
    replace_with.append(a)

for idx, i in enumerate(replace_with):
    data = data.replace(words_to_replace[idx], i)

with open('newmadlib.txt', 'w') as f:
    f.write(data)

Upvotes: 3

Related Questions