2017-06-19 18:59:52 +08:00
|
|
|
#! python3
|
|
|
|
|
'''
|
|
|
|
|
mad_libs.py - reads in text files and lets the user add their own text anywhere
|
|
|
|
|
the word ADJECTIVE, NOUN, ADVERB, or VERB appears in the text
|
|
|
|
|
file.
|
|
|
|
|
|
|
|
|
|
For example, a text file may look like this:
|
|
|
|
|
```
|
|
|
|
|
The ADJECTIVE panda walked to the NOUN and then VERB.
|
|
|
|
|
A nearby NOUN was unaffected by these events.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The program would find these occurrences and prompt the user to
|
|
|
|
|
replace them.
|
|
|
|
|
|
|
|
|
|
Enter an adjective:
|
|
|
|
|
silly
|
|
|
|
|
Enter a noun:
|
|
|
|
|
chandelier
|
|
|
|
|
Enter a verb:
|
|
|
|
|
screamed
|
|
|
|
|
Enter a noun:
|
|
|
|
|
pickup truck
|
|
|
|
|
|
|
|
|
|
The following text file would then be created:
|
|
|
|
|
```
|
|
|
|
|
The silly panda walked to the chandelier and then screamed.
|
|
|
|
|
A nearby pickup truck was unaffected by these events.
|
|
|
|
|
```
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
import re
|
|
|
|
|
|
2017-06-20 08:29:48 +08:00
|
|
|
in_file_name = input("Enter the filename:\n")
|
|
|
|
|
in_file = open(in_file_name)
|
|
|
|
|
content = in_file.read()
|
2017-06-19 18:59:52 +08:00
|
|
|
|
|
|
|
|
for to_replace in re.compile(r'ADJECTIVE|NOUN|ADVERB|VERB').findall(content):
|
2017-06-20 08:29:48 +08:00
|
|
|
str_input = input("Enter %s %s:\n" % ('an' if to_replace[0] in 'AEIOU' else
|
|
|
|
|
'a', to_replace.lower()))
|
|
|
|
|
content = content.replace(to_replace, str_input, 1)
|
|
|
|
|
|
|
|
|
|
out_file_name = input("Enter the output file name:\n")
|
|
|
|
|
out_file = open(out_file_name, 'w')
|
|
|
|
|
out_file.write(content)
|