我正在处理CSV文件并具有以下工作代码:
reader = csv.reader(open(filename, 'rU'), dialect='excel')
header = reader.next()
但是,为了与代码库中的其他地方兼容,我需要使用pkg_resources.resource_stream的文件对象,如下所示:
fileobj = pkg_resources.resource_stream('foo', 'tests/bar.csv')
reader = csv.reader(fileobj, dialect='excel')
header = reader.next()
(我在这里简化了 – 基本上csv.reader代码在我无法控制的函数中,并且它需要一个fileobj.)
这会引发以下错误.
Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
知道如何在我的fileobj中使用通用换行模式吗?我在pkg_resources文档中看不到任何相关内容.
谢谢.
解决方法:
如果流总是有一个fd(例如因为它是文件系统上正常打开的文件),你可以使用os.fdopen(fileobj.fileno(),’rU’)以正确的模式打开它.
标签:python,csv,pkg-resources 来源: https://codeday.me/bug/20190827/1738729.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。