Python 使用while循环将用户输出保存到文件
我正在做一些练习,但我想不出来 编写一个while循环,提示用户输入其名称。当他们输入姓名时,在屏幕上打印问候语,并在名为guest_book.txt的文件中添加一行记录他们的访问。确保每个条目都显示在文件中的新行上Python 使用while循环将用户输出保存到文件,python,loops,file,Python,Loops,File,我正在做一些练习,但我想不出来 编写一个while循环,提示用户输入其名称。当他们输入姓名时,在屏幕上打印问候语,并在名为guest_book.txt的文件中添加一行记录他们的访问。确保每个条目都显示在文件中的新行上 filename = 'guest_book.txt' prompt = "Input your name to be saved in guest book: " active = True with open(filename, 'w') as f:
filename = 'guest_book.txt'
prompt = "Input your name to be saved in guest book: "
active = True
with open(filename, 'w') as f:
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
f.write(message + '\n')
print(message)
filename = 'guest_book.txt'
print("Enter 'quit' when you are finished.")
while True:
name = input("\nWhat's your name? ")
if name == 'quit':
break
else:
with open(filename, 'a') as f:
f.write(name + "\n")
print(f"Hi {name}, you've been added to the guest book.")
老实说,我花了很多时间在这上面,似乎我不理解处理文件的逻辑。我认为f.write
应该直接在下打开
,以便用户输入
保存在文件中,但这是我所知道的。你能帮帮我吗
我的尝试:
filename = 'guest_book.txt'
with open(filename, 'w') as f:
lines = input('Input your name to save in the file: ')
while True:
for line in lines:
f.write(input('Input your name to save in the file'))
我对第二个还有一些希望,但仍然没有成功
filename = 'guest_book.txt'
prompt = "Input your name to be saved in guest book: "
active = True
with open(filename, 'w') as f:
while active:
message = f.write(input(prompt))
if message == 'quit':
break
else:
print(message)
在编写代码时,稍加调整即可使其正常工作。主要问题是,您不能使用
f.write()
的输出作为消息的值,因为它不包含消息,它包含写入文件的字符数,因此它永远不会包含quit
。另外,在选中退出
后,您需要执行写入
,否则将退出
写入文件
filename = 'guest_book.txt'
prompt = "Input your name to be saved in guest book: "
active = True
with open(filename, 'w') as f:
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
f.write(message + '\n')
print(message)
filename = 'guest_book.txt'
print("Enter 'quit' when you are finished.")
while True:
name = input("\nWhat's your name? ")
if name == 'quit':
break
else:
with open(filename, 'a') as f:
f.write(name + "\n")
print(f"Hi {name}, you've been added to the guest book.")
注意:我已将中断更改为active=False
,因为您在活动时将其写成:
,但如果为True,您只需即可:
和中断
,您可以使用打开(文件名,'a')
当a代表append时,通过这种方式,您可以在每次循环迭代时将新行追加到文件中
见:
要了解有关文件处理的信息,请参阅:
祝你好运
filename = 'guest_book.txt'
prompt = "Input your name to be saved in guest book: "
active = True
with open(filename, 'w') as f:
while active:
message = input(prompt)
if message == 'quit':
break
else:
print(message)
f.write(message + '\n')
这可能有用。分配message=f.write(…)
将使其值成为f.write()的返回值。尝试此操作
filename = 'guest_book.txt'
name = ''
with open(filename, 'w') as f:
while name != 'quit':
name = input('Input your name to save in the file: ')
if(name == 'quit'):
break
f.write(name + '\n')
对于任何想知道如何解决整个问题的人。我们使用append而不是write来留住所有曾经使用该程序的客人。写入将覆盖该文件
filename = 'guest_book.txt'
prompt = "Input your name to be saved in guest book: "
active = True
with open(filename, 'w') as f:
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
f.write(message + '\n')
print(message)
filename = 'guest_book.txt'
print("Enter 'quit' when you are finished.")
while True:
name = input("\nWhat's your name? ")
if name == 'quit':
break
else:
with open(filename, 'a') as f:
f.write(name + "\n")
print(f"Hi {name}, you've been added to the guest book.")
正如@yagil所说,如果文件已经存在,您应该使用open(filename,'a')
将其附加到文件中。非常感谢您的帖子!我明白你为什么要做这些调整了。它们都有道理。但是,我已经将它复制到pycharm,它仍然没有将任何内容保存到文件中。知道可以做什么吗?我已经在PyCharm中运行了它,它工作得很好,我在文件中得到了输出。你退出循环来关闭文件了吗?我需要退出来保存它。我不知道那个sry。现在它工作了,我假设它会在我输入每个名字时保存它。