You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取用户多输入并写入文件?解决write()参数错误问题

解决Python文件写入报错及多输入处理问题

嘿,我来帮你搞定这个问题!你遇到的write() takes exactly one argument错误,核心原因很简单:Python的文件write()方法只能接受单个字符串参数,但你一下子传了好几个参数(name, '\n', age这些),这就触发了报错。另外,你想要的是name,age,height的逗号分隔格式,咱们一步步来修正:

错误原因拆解

你原代码里的text_file.write(name, '\n', age, '\n', height)是问题根源——write()不支持多参数传入,而且你要的是逗号分隔的单行格式,换行符其实也不符合需求。

修正后的代码

# 获取用户输入(这里已经正确处理了多输入,只是写入环节出问题啦)
name = input("enter name: ")
age = int(input("enter age: "))
height = int(input("enter height: "))

# 把所有数据拼接成要求的逗号分隔格式字符串
output_content = f"{name},{age},{height}"

# 使用with语句安全操作文件(自动帮你关闭文件,不用手动调用close())
with open('file_name.txt', 'w') as text_file:
    text_file.write(output_content)

关键说明

  • 格式化字符串拼接:用f-string(f"{name},{age},{height}")可以轻松把字符串、整数类型的变量合并成一个符合要求的字符串,这样write()就只收到一个参数,完美解决报错。
  • with语句的优势:它会在代码块执行完毕后自动关闭文件,避免因为忘记写close()导致的文件资源占用问题,是Python操作文件的最佳实践。

如果之后你想改成每行一个数据的格式,只需要把拼接部分改成这样:

output_content = '\n'.join([name, str(age), str(height)])

(这里要把age和height转成字符串,因为join()只接受字符串列表)

内容的提问来源于stack exchange,提问作者Munish Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:48:40