Reading and writing to a file creates null characters
Roy Smith
roy at panix.com
Thu Jan 12 18:14:35 EST 2012
In article
<4f7d125a-2713-4b57-a108-2a56ae6531dc at h3g2000yqe.googlegroups.com>,
Denhua <dennisachang at gmail.com> wrote:
> [omitted]
> f.write("\n".join(newlist))
> f.close()
>
> # output
>
> [root at Inferno html]# python rotate.py
> ['b', 'c', 'd', 'a']
> [root at Inferno html]# python rotate.py
> ['c', 'd', 'a', '\x00\x00\x00\x00\x00\x00\x00\x00b']
> [root at Inferno html]#
>
>
> What's going on? Thanks for your help,
> Dennis
Step 1 in debugging any problem -- try to isolate the smallest possible
test case. In your example, can you figure out if the weirdness is
happening in f.write(), or in what is being passed to f.write()? Try
breaking it down into something like:
> output = "\n".join(newlist)
> print output
> f.write(output)
> f.close()
Next, figure out if it happens whenever you write() to a file, or only
if you write() after you do a truncate().
Once you can answer those questions, you'll have a much smaller problem
to try and solve.
More information about the Python-list
mailing list