使用while循环将用户输入写入文件

时间:2019-05-10 02:54:54

标签: python python-3.x while-loop file-writing

我创建了一个程序,允许用户在我拥有的文本文件中输入他们的姓名。问题是我现在需要使其成为一个while循环,以允许输入多个名称。

我能够通过for循环来获得它,但是我特别在寻找while循环。下面是我的代码,到目前为止没有循环。

filename = input ("visitor_log.txt: ");
with open("visitor_log.txt", "w") as f:
    f.write(input("Please write your name:"));

实际结果会将输入的姓名保留为我可以打印的列表。

4 个答案:

答案 0 :(得分:1)

while循环有条件,只要条件为真,循环将继续执行。

while some_condition:
    //Do some stuff
    //Change your condition if necessary

条件some_condition评估为True时,循环范围内的代码将继续执行。如果您的条件永远不会为假,那么循环将永远执行。

您需要做的是确定条件,以继续循环使用代码,然后根据您的输入根据需要更改条件。这是我的示例,它将读取名称,直到输入单词“ END”为止。

with open("visitor.txt", "a") as f:
    accept_more_visitors = True
    while accept_more_visitors:
        input_value = input("Please write your name, or 'END' if you are done.")
        if input_value == "END":
            break
        f.write(input_value)

另一个主要区别是您正在打开带有标志“ w”的文件,该标志将覆盖文件。您可能希望将标志“ a”附加到其末尾。

答案 1 :(得分:0)

# filename = input ("visitor_log.txt: ")

with open("./visitor_log.txt", "w") as f:
    text = ''

    while text != 'exit\n':
        text = raw_input("Please write your name:")
        print(text)
        text = str(text) + "\n"
        f.write(text)

raw_input最好input用于文本

答案 2 :(得分:0)

这应该有效

names = []
while True:
    name = input ('Enter your name: ')
    names.append(name)
    if input ('Hit enter to add another name, or type done to continue') == 'done':
        break

towrite =''
with open("visitor_log.txt", "w") as f: 
        for name in names:
            towrite+= name + "\n"
         f.write(towrite)

它的作用是让用户输入所需的任意多个名称,然后将其添加到列表中,然后将名称写入visitor_log.txt。

名称存储在名称列表中,因此您可以遍历该列表并对其进行所需的操作。

答案 3 :(得分:0)

尝试一下:

filename = input ("visitor_log.txt: ")
with open("visitor_log.txt", "a") as f:
    i=0
    while (i<5):
        f.write(input("Please write your name:"))
        f.write('\n')
        i +=1