Python疯狂的lib程序

时间:2015-10-22 22:52:11

标签: python

我们正在创建一个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 ")

1 个答案:

答案 0 :(得分:1)

这听起来像一个有趣的任务!以下是我将如何解决问题:

  1. 收集用户输入。您将想要找到一种方法来跟踪用户输入的不同类型的单词,并适当地填写它们。
  2. 替换输入文件中的字词。为此,我将使用re模块或str.replace()方法搜索下一个单词类型,并用适当的单词替换它。
  3. 最后,您将要以某种方式输出文件。将程序输出到屏幕或者用已替换的单词写回已编辑的输入文件。
  4. 作为提示,我会将输入字保存在listdict中,并在进行替换时迭代该数据结构。

    str.replacehttp://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")语句之后添加。