代码之家  ›  专栏  ›  技术社区  ›  Cody

Python:csv模块方言类的误导性文档

  •  1
  • Cody  · 技术社区  · 6 年前

    documentation 声明的默认值 Dialect.delimiter ',' . 但是,当我尝试打印时,它会返回 None

    >>> print(csv.Dialect.delimiter)
    None
    

    方言.分隔符用于分隔字段的单字符字符串。它

    2 回复  |  直到 6 年前
        1
  •  2
  •   Szymon P.    6 年前

    import csv
    
    csv.register_dialect('my_dialect')
    dialect = csv.get_dialect('my_dialect')
    print(dialect.delimiter)
    
        2
  •  2
  •   yorodm    6 年前

    这是创建新的 Dialect csv.get_dialect() 并注册您自己使用 csv.register_dialect . 你也可以只是子类 继续干下去。

    为了更容易指定输入和输出记录的格式,将特定的格式参数分组到方言中。方言是 子类

    做一个简单的 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