gpt4 book ai didi

python - 在 python 中写入 unicode 数据

转载 作者:行者123 更新时间:2023-11-28 16:40:05 24 4
gpt4 key购买 nike

我有一个 xlsx 文件需要转换为 csv,为此我使用了 openpyxl 模块和 unicodecsv。我的问题是,在编写一些文件时,我在输出中得到了一些垃圾字符。详情如下

我的一个文件中有 unicode 代码点 u'\xa0',它对应于 NON BREAK SPACE,但是当转换为 csv 时,我的文件显示的是 的空间。使用 Python GUI 在控制台上打印相同的数据时,它可以完美打印,没有任何 。我在这里做错了什么?任何帮助表示赞赏。

示例代码:

import unicodecsv
from openpyxl import load_workbook

xlsx_file=load_workbook('testfile.xlsx',use_iterators=True)
with open('test_utf.csv','wb') as open_file:
csv_file=unicodecsv.writer(open_file)
sheet=xls_file.get_active_sheet()
for row in sheet.iter_rows():
csv_file.writerow(cell.internal_value for cell in row)

P.S:写入的数据类型为Unicode。

最佳答案

好的,所以发生的事情是 Excel 喜欢假设您正在使用当前配置的代码页。您有几个选择:

  • 在该代码页中写入您的数据。但是,这需要您知道您的用户将使用哪一个。

  • 使用“导入数据”菜单选项加载 csv 文件。如果你是依靠你的用户来做这件事,不要。大多数人不会愿意这样做。

  • 使用默认接受 csv 中的 unicode 的不同程序,例如 Libre Office。

  • 在文件开头添加 BOM,让 Excel 识别 utf-8。这可能会中断其他程序。

由于这是供您个人使用的,如果您只打算使用 Excel,那么在开头附加一个字节顺序标记可能是最简单的解决方案。

关于python - 在 python 中写入 unicode 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com