Python CSV框架与代码风格指南
1. CSV Writer实现
CSV Writer的接口比Reader更复杂,需要实例方法,因此要添加新类来管理文件写入行为。不过,大部分工作仍可借助 csv
模块完成,新类只需处理 sheets
框架的额外特性。
首先,为了与Reader对应,Writer可通过 Row
子类的方法访问。该方法接收文件对象并返回新对象:
@classmethod
def writer(cls, file):
return Writer(file, cls._dialect)
注意, SheetWriter
不能仅依赖文件,因为它与 Row
分离,无法直接访问方言选项。
接下来需创建并完善 SheetWriter
类,满足Writer接口需要实现 writerow()
和 writerows()
方法。前者用于写入单行,后者用于写入多行。
在实现这些方法前, Writer
类需要进行基本初始化,获取类的列列表、CSV选项以及 has_header_row
选项:
class Writer:
def __init__(self,