使用任意字符编码读取csv文件。

encoded-csv的Python项目详细描述


csv文件可以用ascii以外的其他编码吗?没问题。

此软件包支持读取使用任意文本编码的csv文件。它构建在python的标准csvcodecs包之上,如果需要,它使用Daniel Blanchard's ``chardet`universal encoding detector<;https://pypi.python.org/pypi/chardet>;``来猜测文件的编码。

请注意,支持utf-8-sig(前导Byte Order Mark的utf-8)。当用户选择“另存为…”并选择“CSV UTF-8”时,Microsoft Excel的最新版本将使用此格式。

安装

pip install encoded_csv

使用它

只有一个函数:get_csv(),如下所示:

encoded_csv.get_csv(csv_file,skip_lines=0,encoding='',dialect='',fieldnames=[],sample_lines=100)

tests/目录中的代码提供了使用示例。函数返回一个元组,其中第一项是字段名列表。第二项是有序字典的列表,每个字典都包含从csv文件的给定行读取的数据。

第一行(丢弃任何标题行后)假定包含列名。

关键字参数:

  • csv_file–要打开的csv文件的路径
  • skip_header_lines–(可选)假定它们构成某种类型的文件头时要丢弃的行数(默认值是不跳过任何行)
  • encoding–(可选)指定要用于文件的编码;the standard python ``codecs`模块<;https://docs.python.org/3.6/library/codecs.html>;``使用,因此可以指定the standard encodings中的任何一个;默认行为是尝试使用chardet进行最佳猜测
  • dialect–(可选)特定于特定csv方言的一组参数;the standard python ``csv`模块<;https://docs.python.org/3/library/csv.html>;``使用,因此必须使用the standard, predefined ``dialect`值或格式参数<;https://docs.python.org/3/library/csv.html#csv-fmt-params>;``使用;默认行为是尝试使用csv.Sniffer进行最佳猜测。
  • fieldnames–(可选)用于强制csv.DictReader使用特定的字段名集。
  • sample_lines–(可选)整数,用于在尝试检测使用中的csv方言时准备给定给csv.Sniffer()的示例;默认值为100行或整个文件,以较少的为准。

我们欢迎bug报告和特性请求,但实际上我更喜欢pull请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么ObjectOutputStream将符号写入文件而不是我的输入?   java Spring boot@ExceptionHandler未捕获子类异常   以编程方式发送mule消息(以前是:从java访问mule http端点)   java如何从应用程序外部更改JavaFX应用程序的内容   java舍入误差近似   网络Java客户端在尝试从Java服务器创建ObjectInputStream时冻结   java在创建区域和持久化区域到磁盘Geme Gemfire Spring Boot时遇到问题   计算字符串中的字符数   java我们如何在eclipseLink中使用自己的集合进行延迟加载?   java中ArrayList的初始化类型之间的差异   java ArrayIndexOutOfBoundsInsert与键盘固定器一起使用时发生异常   安卓 Java函数在函数执行前返回一个值   通过反射构造枚举的java设计模式   java ksh命令替换为数组中的引号   java有没有一种方法可以在Mockito中同时通过引用和相等进行匹配?   java什么是与Stripe Connect相当的PayPal REST API?   数学Java Haversine公式的实现问题   java使用jdbc和Kerberos委派连接到SAP HANA DB   java如何删除GeoDistanceSortBuilder的ignoreUnmapped?