Python读取xls>操纵>写入CSV

2024-10-03 09:11:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试存档以下内容:

输入:xls文件 输出:csv文件

我想阅读xls并做一些操作(重写标题(原始:customernumer,csv needs Customer\u Number_uucc),删除一些列,等等

现在我已经在读xls,并尝试以csv的形式编写(不需要任何操作),但是我正在为编码而挣扎。 原始文件包含一些“特殊”字符,如“/”、“\”和最重要的“ä,ü,ö,ß”。在

我得到以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 8: ordinal not in range(128)

我不知道哪些特殊字符可以在一个文件中,这是不时变化的。在

以下是我当前的沙盒代码:

^{pr2}$

我能做些什么来确保这些特殊的字符以和它们在原始xls中出现的方式写入csv?在

谢谢

安德烈


Tags: 文件csvin标题number编码错误customer
3条回答

您可以将脚本转换为python3,然后在打开输出文件时将write模式设置为“w”,而不是编写Unicode。并不是在宣传,但是Python3让这类事情变得更简单。如果您想继续使用python2,请查看本指南:https://docs.python.org/2/howto/unicode.html

如果要编写utf-8编码的文件,必须使用codecs.open。试试这个小例子:

o1 = open('/tmp/o1.txt', 'wb')
try:
    o1.write(u'\u20ac')
except Exception, exc:
    print exc
o1.close()

import codecs
o2 = codecs.open('/tmp/o2.txt', 'w', 'utf-8')
o2.write(u'\u20ac')
o2.close()

简单的

从操作系统导入系统 重新加载(系统) sys.setdefaultencoding(“utf-8”)

成功了

安德烈

相关问题 更多 >