gpt4 book ai didi

csv - 使用 pkgutil.get_data 读取 csv(文本)文件

转载 作者:行者123 更新时间:2023-12-01 16:26:36 24 4
gpt4 key购买 nike

所以我正在编写一些代码,需要从 CSV 文件中提取配置/数据,这些文件与应用程序打包在一起。据我了解,使用 pkgutil 是执行此操作的“正确”方法。所以我想做的是:

import pkgutil
MatFile = pkgutil.get_data('impy.implosions', 'LILAC_Materials.csv')

它工作正常并给我文件的字节。但我不知道如何以干净的方式将其输入 csv.reader 。我找到了这个old question但它的解决方案是这样的:

MatFile = io.StringIO(MatFile)
dataReader = csv.reader(MatFile , delimiter=',')

这不起作用,因为 StringIO 需要一个 str。 io 中的补充功能是 BytesIO,但这对我没有帮助,因为 csv.reader 无法处理它。看起来这应该有一个简单的解决方案,但我不熟悉在 python 中处理字节数据。谢谢!

最佳答案

在 Python 3 中,csv 模块的类希望您向它们传递一个生成 Unicode 字符串的迭代。如果您的数据是单字节字符串,则首先需要对数据进行解码,然后将其分成几行。

这里有一段应该可以工作的快速代码:

MatFile = pkgutil.get_data('impy.implosions', 'LILAC_Materials.csv')
dataReader = csv.reader(MatFile.decode('utf-8').splitlines(), delimiter=',')

我猜测该文件是用 UTF-8(或 ASCII,它的子集)编码的。如果您知道的话,请在 decode 调用中交换适当的编码。 str.splitlines 负责将单个字符串分解为行列表,这完全可以作为 csv.reader 的输入。

关于csv - 使用 pkgutil.get_data 读取 csv(文本)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23749750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com