[Python-Dev] csv changed from python 2.4 to 2.5
Nick Craig-Wood
nick at craig-wood.com
Wed Jun 27 12:50:41 CEST 2007
Christian K <ckkart at hoc.net> wrote:
> I could not find documentation of the following change in python2.5. What is the
> reason for that?
>
> Python 2.4.4 (#2, Apr 12 2007, 21:03:11)
> [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import csv
> >>> d=csv.get_dialect('excel')
> >>> d.delimiter = ','
> >>>
>
> ck at kiste:/media/hda6/home/ck/prog/peak-o-mat/trunk$ python2.5
> Python 2.5.1 (r251:54863, May 2 2007, 16:56:35)
> [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import csv
> >>> d=csv.get_dialect('excel')
> >>> d.delimiter = ','
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: readonly attribute
> >>>
Looks like this is the reason - the get_dialect call (which is
implemented in C) is now returning a read only Dialect object rather
than an instance of the original class :-
2.5
>>> import csv
>>> d = csv.get_dialect('excel')
>>> d.__class__
<type '_csv.Dialect'>
>>>
2.4
>>> import csv
>>> d = csv.get_dialect('excel')
>>> d.__class__
<class csv.excel at 0xb7d1f74c>
>>>
> Python 2.5.1 (r251:54863, May 2 2007, 16:56:35)
> [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import csv
> >>> d = csv.excel
> >>> d.delimiter = ','
> >>>
Don't you want to do this anyway?
import csv
class my_dialect(csv.excel):
delimeter = ","
--
Nick Craig-Wood <nick at craig-wood.com> -- http://www.craig-wood.com/nick
More information about the Python-Dev
mailing list