Python写入mean/var/std到txt文件报错:期望可迭代对象而非float
解决写入mean/var/std到TXT文件的报错问题
报错原因
csv.writer.writerow() 要求传入可迭代对象(如列表、元组)来生成CSV格式行数据,但你直接传入了float类型的mean/var/std,不符合参数要求,因此触发iterable expected, not float错误。
另外,你的需求是输出mean = 数值这类纯文本行,使用csv模块属于冗余操作,直接用文件的write()方法更适配。
修复方案(推荐)
直接写入格式化后的字符串,代码如下:
mean = 50.00001075309713 var = 4.120598729047652 std = 2.0299257939756448 with open('Radius.txt', 'w+') as f: f.write(f"mean = {mean}\n") f.write(f"var = {var}\n") f.write(f"std = {std}\n")
执行后,Radius.txt的内容将完全符合你的期望:
mean = 50.00001075309713 var = 4.120598729047652 std = 2.0299257939756448
若坚持使用csv模块的写法
如果一定要用csv模块,需将每个文本行包装成可迭代对象(如单元素列表),代码如下:
import csv mean = 50.00001075309713 var = 4.120598729047652 std = 2.0299257939756448 with open('Radius.txt', 'w+') as f: writer = csv.writer(f) writer.writerow([f"mean = {mean}"]) writer.writerow([f"var = {var}"]) writer.writerow([f"std = {std}"])
内容的提问来源于stack exchange,提问作者user19862793
相关产品推荐
相关产品推荐

