文档指出Dialect.delimiter
的默认值为','
。但是,当我尝试打印时,它返回None
.
>>> print(csv.Dialect.delimiter)
None
方言分隔符 用于分隔字段的单字符字符串。它 默认为","。
这是创建自己的方言时的默认值。
import csv
csv.register_dialect('my_dialect')
dialect = csv.get_dialect('my_dialect')
print(dialect.delimiter)
这是创建新Dialect
时的默认值。您可以使用csv.get_dialect()
获取方言实例(如果您使用的是 Python 3.x,则为不可变实例(,并使用csv.register_dialect
注册自己的方言实例。您也可以只对Dialect
进行子类并继续使用它。
如果您只是阅读该行,文档可能看起来不清楚,但是上面的几行您可以看到:
为了更轻松地指定输入和输出记录的格式,将特定的格式设置参数分组到方言中。方言是方言类的一个子类,具有一组特定方法和单个 validate(( 方法。
在 REPL 中执行简单的help(csv.Dialect)
可以确认在处理此类时必须进行子类化。
class Dialect(builtins.object)
| Describe a CSV dialect.
|
| This must be subclassed (see csv.excel). Valid attributes are:
| delimiter, quotechar, escapechar, doublequote, skipinitialspace,
| lineterminator, quoting.
|
| Methods defined here:
|
| __init__(self)
| Initialize self. See help(type(self)) for accurate signature.
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| delimiter = None
|
| doublequote = None
|
| escapechar = None
|
| lineterminator = None
|
| quotechar = None
|
| quoting = None
|
| skipinitialspace = None