使用任意字符编码读取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允许具有不同父类的类扩展类,而无需多重继承   java如何创建动态化的JScrollPane w/JPanel作为客户端?   java如何组织和命名包   在Java中读取属性文件   java无法解释的Android意图行为   在Java中动态执行多个BPEL文件的部署   ssl Java 6 SNI(服务器名称指示)?   java我们可以使用Robot框架自动化web和移动应用程序来执行并行执行   java for star pettern的循环   java为什么BinaryReader在线程中,从netty读取错误的数据包?   在java中将华氏度转换为摄氏度   使用Spark和java处理空值和引号编写CSV文件   Java中已排序日期到块的列表   visual studio代码VSCode Java不是linting或自动完成局部变量,而是自动完成Java快捷方式,如“sysout”