Python文件写入模式下使用input报错,如何实现用户输入内容写入文件?
问题解答
核心问题:写入模式下能否使用input函数?
完全可以。input()是从控制台获取用户输入的函数,和文件的打开模式(如w只写)没有冲突,你的代码报错是逻辑错误,和input本身无关。
你的代码问题分析
- 错误使用input参数:
input(str(guest_info))把文件对象转成字符串当提示语,这完全不符合需求,input的参数应该是给用户的提示文本,比如"请输入你的姓名:"。 - 写入模式无法读取:你用
"w"模式打开文件,这个模式是只写权限,不能执行读取操作,所以for info in guest_info:会触发"文件不可读"的错误。 - 逻辑颠倒:你应该先获取用户输入,再把内容写入文件,而不是尝试从文件读取内容。
修正后的代码
"""10-3. 访客:编写程序提示用户输入姓名,收到回复后将其姓名写入名为guest.txt的文件。""" filename = "../Data/guest.txt" # 获取用户输入的姓名 guest_name = input("请输入你的姓名:") # 以写入模式打开文件并写入内容 with open(filename, "w") as guest_file: guest_file.write(guest_name) # 可选:验证写入结果 with open(filename, "r") as guest_file: saved_name = guest_file.read() print(f"已成功写入访客姓名:{saved_name}")
补充说明
- 如果需要保留原有文件内容,追加新的访客姓名,把打开模式改成
"a"(追加模式),并在写入时加上换行符guest_file.write(f"{guest_name}\n"),避免多个姓名挤在一行。 with语句会自动帮你关闭文件,无需手动调用close(),是Python操作文件的推荐写法。
内容的提问来源于stack exchange,提问作者Salome Aptsiauri
相关产品推荐
相关产品推荐

