如何实现Python输入写入文件功能并让其无限循环执行?
嘿,这就来帮你搞定这两个Python问题,咱们一步一步来!
问题1:让Python请求用户输入并写入文件
其实你现有的代码已经实现了核心功能,但可以优化得更规范、更安全。我给你调整后的版本:
import time # 生成带格式的当前时间 current_time = time.strftime("%H:%M %d/%m/%Y:") # 请求用户输入(input本身返回字符串,不用额外转str) user_input = input("Nodus: ") # 用with语句自动管理文件,不用手动close,避免资源泄漏 with open("Diário.txt", "a", encoding="utf-8") as diary_file: diary_file.write(f"{current_time} \"{user_input}\"\n") # 读取并打印文件内容 with open("Diário.txt", "r", encoding="utf-8") as diary_file: content = diary_file.read() print(content)
这里的关键细节:
- 用
input()直接获取用户输入,它本身返回的就是字符串,不用多此一举转str with语句是Python操作文件的最佳实践,代码块结束后会自动关闭文件,比手动close()更稳妥- 用f-string格式化文本,比
%s写法更直观易读 - 指定
utf-8编码,避免写入特殊字符时出现乱码
问题2:实现无限循环的输入与写入功能
要避免重复粘贴代码,咱们用无限循环来实现,同时加个退出条件(比如输入exit就停止),这样用户可以主动结束程序,不用强制中断:
import time while True: # 获取当前时间 current_time = time.strftime("%H:%M %d/%m/%Y:") # 请求用户输入 user_input = input("Nodus: ") # 退出条件:输入exit就终止循环(不区分大小写) if user_input.lower() == "exit": print("已停止记录,再见!") break # 写入文件 with open("Diário.txt", "a", encoding="utf-8") as diary_file: diary_file.write(f"{current_time} \"{user_input}\"\n") # 可选:打印当前文件内容,方便即时查看 with open("Diário.txt", "r", encoding="utf-8") as diary_file: content = diary_file.read() print("\n当前日记内容:") print(content) # 可选:保留你原代码里的暂停功能 time.sleep(5)
这个循环会一直运行,直到用户输入exit(不管大小写都能识别)。你也可以根据需求修改退出关键词,或者去掉time.sleep(5)取消暂停。
内容的提问来源于stack exchange,提问作者Funkysnipa Cat stake2
相关产品推荐
相关产品推荐

