首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python将unicode写成csv并用MS Excel打开

用Python将unicode写成csv并用MS Excel打开
EN

Stack Overflow用户
提问于 2017-01-18 20:01:58
回答 1查看 312关注 0票数 0

我正在编写小应用程序来比较两个XML文件,然后输出到CSV的差异。当我用notepad++打开CSV时,一切看起来都很好(显示了UTF-8编码,但是当我用MS Excel打开时,我得到奇怪的字符。有什么办法让它在MS Excel中也能工作吗?

我正在使用xml.etree.ElementTree来解析XML文件。差异存储在两个列表中。我尝试了其他类似问题的各种建议,但似乎都不起作用。

文件保存代码如下:

代码语言:javascript
复制
def saveresults():
filesave = tkFileDialog.asksaveasfilename(initialdir=filenewdir, title="Save to CSV",
                                      defaultextension=".csv", filetypes=[("CSV (Comma delimited)", ".csv")])
if filesave is not None:
    with open(filesave, 'wb') as fp:
        writef = unicodecsv.writer(fp, dialect="excel-tab", encoding="utf-8")
        writef.writerow(("Trigger", "Variable", "Old label", "Old columns", "Old precode", "Old precode text",
                        "New label", "New columns", "New precode", "New precode text"))

        for x, newvalue in enumerate(newvalues):
            writef.writerow((newvalue[0], newvalue[1], oldvalues[x][2], oldvalues[x][3], oldvalues[x][4],
                             oldvalues[x][5], newvalue[2], newvalue[3], newvalue[4], newvalue[5]))
        fp.close()
        tkMessageBox.showinfo(title="Message", message="Done!")

记事本中的测试文本:

花费2,000Ž或更多用于建筑、装修或家居装修Lietuvos valstiečiųiržaliųjųsąjungos (LVŽS)

使用MS Excel打开时的相同文本:

花费2,000…或更多用于建筑、装修或家居改善Lietuvos valstie­iäié³irái³ali³³jä³sä…jungos (LVä²S)

EN

回答 1

Stack Overflow用户

发布于 2017-01-18 20:24:01

似乎MS Excel版本正在读取文件,就好像它是用ANSI编码的一样,所以我预计这最终会是一个excel问题-你提到尝试其他问题的想法,这包括Is it possible to force Excel recognize UTF-8 CSV files automatically?吗?特别是,如果您打开excel然后导入数据,而不是从资源管理器/命令行使用excel打开数据,是否有效?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41718909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档