簡體   English   中英

Python:誤導csv模塊Dialect類的文檔

[英]Python: Misleading Documentation of csv module Dialect class

文檔說明Dialect.delimiter的默認值是',' 但是,當我嘗試打印時,它返回None

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

Dialect.delimiter用於分隔字段的單字符字符串。 它默認為','。

這是您創建自己的方言時的默認值。

import csv

csv.register_dialect('my_dialect')
dialect = csv.get_dialect('my_dialect')
print(dialect.delimiter)

這是您創建新Dialect時的默認值。 您可以使用csv.get_dialect()獲取方言實例(如果您使用的是Python 3.x, csv.get_dialect()並使用csv.register_dialect注冊您自己的csv.register_dialect 您也可以將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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM