更好的CSV模块
项目描述
更好的CSV库
功能
允许您在Python 2和Python 3中编程,就像您有Python 3的CSV模块一样。
在Python 2下,提供Python 3兼容的csv模块。
在Python 3下,透明传递。
允许您的CSV文件以任何您想要的方式编码。
Python 3兼容性
import cordwainer.csv as csv 应该等同于导入Python 3的csv模块,无论是在Python 2还是Python 3下运行。请参阅Python 3 csv模块文档
CSV文件编码
Python 2的csv模块期望传递给它的文件句柄返回ASCII或UTF-8编码的数据,并以相同的方式写入文件。
Python 3的csv模块期望传递给它的句柄返回已解码的文本数据,并写入未编码的文本数据。您负责在打开文件时安排转换,或者通过某种转换将流管道化。
使用Cordwainer,您只需传递额外的encoding参数,说明您的流提供或期望以指定编码的二进制数据,Cordwainer将处理所有必要的转换。
如果省略encoding或为None,Cordwainer假定提供的流将提供或期望未编码的文本数据,就像Python 3的csv模块一样。
其他使用说明
encoding参数仅应用于从流中读取和写入。
字符串参数应始终作为字符传递到API,并且结果始终是字符。
例如。
将字段名作为字符传递给DictWriter
将数据按行传递给writerow()作为字符
next()返回字符形式的行
预期(最终)功能
可选的标题行
验证预期的字段和类型(可能指定一个Django表单进行验证)
详细的错误处理 - 对每行出现错误的情况,说明问题所在行
可选地在N个错误后停止处理
可选地导入有效的行,同时跳过无效的行
可选地将整个过程在一个事务中完成
可选地忽略任何额外的列
可选地保存上传的文件,然后在后台任务中处理它(以不延迟HTTP请求)
对于Excel,灵活地决定导入哪个工作表 - 或者甚至可以从一个上传中导入多个工作表
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。