- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在编写一些代码,需要从 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/
我有一个包布局: scenarios/ __init__.py X/ __init__.py Y/ __init__.py
显然,导入RichIPythonWidget会对模块pkgutil产生影响。 测试环境: IPython版本:2.1.0python 版本:2.7 和 2.7.6 显示问题的代码: import os
我正在尝试打印包中给定模块的所有子模块。但是,当运行该函数来执行此操作时,我得到的结果很复杂,任何人都可以解释为什么会发生这种情况以及如何避免它吗? 项目布局: /Users/me/projects/
我可以在不先解压缩的情况下找到压缩包中的模块吗? 我正在使用 pkgutil.walk_packages 检查包裹并使用 importlib 拉出所有模块. for _, pkg, _ in pkgu
所以我正在编写一些代码,需要从 CSV 文件中提取配置/数据,这些文件与应用程序打包在一起。据我了解,使用 pkgutil 是执行此操作的“正确”方法。所以我想做的是: import pkgutil
PEP420 使 __init__.py 文件可选:https://docs.python.org/3/whatsnew/3.3.html#pep-420-implicit-namespace-pac
我有一个 python 模块,其中包含需要在运行时加载的各种数据文件(一组表示曲线的 csv 文件)。 csv 模块运行良好 # curvefile = "ntc.10k.csv" raw =
我是一名优秀的程序员,十分优秀!