我们正在创建一个python程序,它接受用户定义的文件(madlib1.txt)并将此文件的某些部分替换为名为(story.txt)的新输出文件。
提供了madlib1.txt文件,如下所示:
After I got out of the shower and dressed, I [past-tense-verb] to the
student center to eat [noun] and [noun] for breakfast. I was [emotion]
to go to my classes as we were learning about [topic] . After dinner I
planned to [activity] .
我知道如何打开文件并知道如何进行输出,但我发现如何找到文件中的“[]”并替换它们。代码需要保持使用一些基本概念。
这是程序在运行时应该是什么样子
Enter input filename: madlib1.txt
Enter output filename: story.txt
Enter a past-tense-verb: ran
Enter a noun: green eggs
Enter a noun: ham
Enter a emotion: excited
Enter a topic: loops
Enter a activity: go for a bike ride
并且输出文件将使用这些新用户输入的单词代替括号
这是我到目前为止的代码
def main():
#get file name
fname = input("Enter your filename ")
infile = open(fname,"r")
output = input("What should the output file be called? ")
#reads each line
for line in infile:
pastTense, noun, noun, emotion, topic, activity = line.split("[")
我不知道如何进一步接近这个程序。
编辑我添加的代码
fname.readlines()
fname.replace("past-tense-verb")
#user inputs thier own words
pastTense = input("Enter a past tense verb ")
noun1 = input("Enter a noun ")
noun2 = input("Enter a noun ")
emotion = input("Enter an emotion ")
topic = input("Enter a topic ")
activity = input("Enter an activity ")
答案 0 :(得分:1)
这听起来像一个有趣的任务!以下是我将如何解决问题:
作为提示,我会将输入字保存在list
或dict
中,并在进行替换时迭代该数据结构。
str.replace
:http://www.tutorialspoint.com/python/string_replace.htm
re
模块:https://docs.python.org/2/library/re.html
由于这是一项家庭作业,我不想太具体,但希望这会指出你正确的方向。祝你好运!
修改:这两行演示了f.read()
和str.replace()
的使用:
instring = infile.read()
instring = instring.replace('[noun]', word, 1)
在infile = open(fname,"r")
语句之后添加。