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

Using while loop to write user input to a file

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

我可以通过 for 循环来获取它,但我特别需要 while 循环。下面是我的代码,到目前为止没有循环。

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

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

while循环有一个条件,只要条件为真,循环就会继续执行。

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

虽然条件some_condition计算结果为真,循环范围内的代码将继续执行。如果您的条件永远不会变为 False,那么您的循环将永远执行。

您需要做的是确定继续循环代码的条件,然后根据您的输入根据需要更改该条件。这是我的示例,它将读取名称,直到输入单词 "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" 将附加到它的末尾。

# 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 for text

这应该有效

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。

名称存储在名称列表中,因此您可以遍历该列表并使用它做任何您喜欢的事情。

试试这个:

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