【发布时间】:2017-01-18 12:01:58
【问题描述】:
我正在编写一个小应用程序来比较两个 XML 文件,然后将差异输出到 CSV。当我使用 notepad++ 打开 CSV 时,一切看起来都很好(显示编码 UTF-8,但使用 MS Excel 打开时出现奇怪的字符。任何想法如何使其在 MS Excel 中也能工作?
我正在使用xml.etree.ElementTree 来解析 XML 文件。差异存储在两个列表中。我已经尝试了其他类似问题的各种建议,但似乎没有任何效果。
文件保存代码在这里:
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!")
记事本中的测试文本:
在 Lietuvos valstiečių ir žaliųjų sąjungos (LVŽS) 上花费 2,000 英镑或更多
使用 MS Excel 打开时相同的文本:
在建筑、装饰或家居装修上花费 2,000 英镑或更多 Lietuvos valstieÄių ir žaliųjų sÄ…jungos (LVŽS)
【问题讨论】:
标签: python-2.7 csv python-unicode