使用任意字符编码读取csv文件。
encoded-csv的Python项目详细描述
csv文件可以用ascii以外的其他编码吗?没问题。
此软件包支持读取使用任意文本编码的csv文件。它构建在python的标准csv和codecs包之上,如果需要,它使用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请求。