Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Writing data to a text file in Python

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

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

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 = }', ))
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading