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

Python如何将多个input输入内容保存到txt文件(解决写入None问题)

问题根源

你写入文件得到None的核心原因是错误使用了print()函数:

  • print()的作用是把内容输出到控制台,它本身没有返回值,把print()的执行结果转成字符串赋值给变量,得到的永远是字符串形式的None

另外你的代码还有三个容易出问题的点:

  • 开头导入的from distutils import text_file全程没有使用,且distutils在Python 3.12及以上版本已经从标准库移除,属于无效导入
  • 末尾的file.close没有加括号,不会真正执行文件关闭操作,极端场景下会导致写入内容丢失
  • 拼接字符串后调用.split(" ")属于多余逻辑,你格式化生成的字符串本身没有需要拆分的多余空格
修复方案

直接拼接你需要存储的内容字符串,不要套在print()里,推荐使用with上下文管理器操作文件,会自动完成文件关闭,不需要手动调用close方法:

kids = input("How many kids do you have?>")
food = input("Whats your favorite food?>")
tv = input("Whats your favorite sports team>")
work = input("Where do you work?>")
carmake = input("Whats the make of your car?>")
symbol = input("Pick a symbol !@#$%^&*()_+")

# 直接拼接要存储的内容,不需要调用print
results = f"{kids}, {food}, {tv}, {work}, {carmake}, {symbol}"

# 用with写法自动管理文件,指定编码避免中文乱码
with open("passwordGenerator.txt", "w", encoding="utf-8") as f:
    f.write(results)

如果你确实想要存储列表格式的内容,直接把变量组成列表转字符串即可,同样不需要套print():

results = str([kids, food, tv, work, carmake, symbol])

内容的提问来源于stack exchange,提问作者charles rhaburn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:45:31