I am trying to write mean,var,std to a .txt file but I am getting an error.
import csv
mean = 50.00001075309713
var = 4.120598729047652
std = 2.0299257939756448
with open('Radius.txt', 'w+') as f:
writer = csv.writer(f)
print("Mean =",mean)
print("var =",var)
print("std =",std)
writer.writerow(mean)
writer.writerow(var)
writer.writerow(std)
The error is
in <module>
writer.writerow(mean)
Error: iterable expected, not float
The expected output is
mean = 50.00001075309713
var = 4.120598729047652
std = 2.0299257939756448
>Solution :
Change:
writer.writerow(mean)
writer.writerow(var)
writer.writerow(std)
to:
writer.writerow((mean, var, std))
The requirement for an iterable means whatever you pass to writerow must be something which can be looped through. The fix here is to put your values into a tuple, the inner bracketed values. It works because tuples can be looped through. 👍
To write the values as a single line with variable prefixes (OP’s comment) use:
writer.writerow((f'{mean = } {var = } {std = }', ))