On 17 April 2015 at 14:51, <subhabrata.bane...@gmail.com> wrote: > On Friday, April 17, 2015 at 6:50:08 PM UTC+5:30, subhabrat...@gmail.com > wrote: >> I am having few files in default encoding. I wanted to change their >> encodings, >> preferably in "UTF-8", or may be from one encoding to any other encoding. >> >> I was trying it as follows, >> >> >>> import codecs >> >>> sourceEncoding = "iso-8859-1" >> >>> targetEncoding = "utf-8" >> >>> source = open("source1","w") >> >>> target = open("target", "w") >> >>> target.write(unicode(source, sourceEncoding).encode(targetEncoding)) >> >> but it was giving me error as follows, >> Traceback (most recent call last): >> File "<pyshell#6>", line 1, in <module> >> target.write(unicode(source, sourceEncoding).encode(targetEncoding)) >> TypeError: coercing to Unicode: need string or buffer, file found
The error comes from `unicode(source, sourceEncoding)` and results from the fact that source is a file object when it should be a string. To read the contents of the file as a string just change `source` to `source.read()`. Oscar -- https://mail.python.org/mailman/listinfo/python-list