Python:如何在文件中存储用户文本输入?

时间:2013-07-14 21:46:02

标签: python file text input store

我试图提示用户输入一个文本块,直到他/她在一个单独的行上单独输入EOF。之后,程序应该向他/她提供菜单。当我转到选项1时,它只打印出EOF而不是之前输入的所有内容。这是为什么?

假设我输入“嗨我喜欢馅饼”作为我的文本块。我输入EOF前往菜单并输入选项1.我希望弹出“我喜欢馅饼”但只有字母EOF。我该如何解决?如何“提供”Python文件?

#Prompt the user to enter a block of text.
done = False
while(done == False):
    textInput = input()
    if textInput == "EOF":
        break

#Prompt the user to select an option from the Text Analyzer Menu.
print("Welcome to the Text Analyzer Menu! Select an option by typing a number"
    "\n1. shortest word"
    "\n2. longest word"
    "\n3. most common word"
    "\n4. left-column secret message!"
    "\n5. fifth-words secret message!"
    "\n6. word count"
    "\n7. quit")

option = 0

while option !=7:
    option = int(input())

    if option == 1:
        print(textInput)

4 个答案:

答案 0 :(得分:0)

原因是,在while循环中,您循环直到textInput等于EOF,因此您只需打印EOF

你可以尝试这样的事情(通过使用nextInput变量来“预览”下一个输入):

#Prompt the user to enter a block of text.
done = False
nextInput = ""
while(done == False):
    nextInput= input()
    if nextInput== "EOF":
        break
    else:
        textInput += nextInput

答案 1 :(得分:0)

设置

textInput = input()

你扔掉旧的输入。如果你想保留所有输入,你应该列出一个清单:

input_list = []
text_input = None
while text_input != "EOF":
    text_input = input()
    input_list.append(text_input)

答案 2 :(得分:0)

每次用户键入新行时,都会覆盖textInput变量。

你可以做到

textInput = ''
done = False
while(done == False):
    input = input()
    if input == "EOF":
        break
    textInput += input

此外,您不需要同时使用done变量和break语句。 你可以做到

done = False
while(done == False):
    textInput += input()
    if textInput == "EOF":
        done = True

while True:
    textInput += input()
    if textInput == "EOF":
        break

答案 3 :(得分:0)

您需要在输入时保存while循环中输入的每一行。每次用户键入新行时,都会覆盖变量textInput。您可以将商店文本用于以下文本文件:

writer = open("textfile.txt" , "w")
writer.write(textInput + "\n")

在while循环中将if作为ifif语句插入。 “\ n”是一个新的行命令,在读取文本时不会显示,但会告诉计算机开始换行。

要阅读此文件,请使用以下代码:

reader = open("textfile.txt" , "r")
print(reader.readline()) #line 1
print(reader.readline()) #line 2

还有其他各种方法可以以不同的方式为您的程序读取文件,您可以自己研究。