跳转到主要内容

更好的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,灵活地决定导入哪个工作表 - 或者甚至可以从一个上传中导入多个工作表

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

cordwainer-0.0.2.tar.gz (10.3 kB 查看哈希值)

上传时间

构建分布

cordwainer-0.0.2-py3-none-any.whl (9.5 kB 查看哈希值)

上传时间 Python 3

由以下支持