How to write integer values to a file using out.write()?

file-io, python

Solution

write() only takes a single string argument, so you could do this:

outf.write(str(num))

or

outf.write('{}'.format(num))  # more "modern"
outf.write('%d' % num)        # deprecated mostly

Also note that `write` will not append a newline to your output so if you need it you'll have to supply it yourself.

Aside:

Using string formatting would give you more control over your output, so for instance you could write (both of these are equivalent):

num = 7
outf.write('{:03d}\n'.format(num))

num = 12
outf.write('%03d\n' % num)          

to get three spaces, with leading zeros for your integer value followed by a newline:

007
012

format() will be around for a long while, so it's worth learning/knowing.

Problem

I am generating some numbers (let's say, `num`) and writing the numbers to an output file using `outf.write(num).` But the interpreter is throwing an error: ``` outf.write(num) TypeError: argument 1 must be string or read-only character buffer, not int. ``` How can I solve this problem?

Original source