首页 > 解决方案 > 在 Python 3.8 和 xlsxwriter 中写入输出时,特殊字符(é、ê 等)将无法正确显示

问题描述

我正在使用几个文本文件将输出写入 Excel 文件。一切正常,除了 é、ê 等特殊字符的格式。

以下是输入文本文件的示例:

请鼓励 Nehvandré 经常大声朗读。

这是将特定文本写入 Excel 文件的方式:

请鼓励 Nehvandré 经常大声朗读。

这是我用来遍历文本文件并将文件内容写入 Excel 文件的代码。

from pathlib import Path
import os
import xlsxwriter

txt_dir = r"D:\PYTHON_SCRIPTS\****\comment_output"
subfolder_name = [f.name for f in os.scandir(txt_dir) if f.is_dir()]
subfolder_path = [f.path for f in os.scandir(txt_dir) if f.is_dir()]

sub_index = 0
while sub_index < len(subfolder_name):
    row = 0
    col = 0
    workbook = xlsxwriter.Workbook(subfolder_path[sub_index] + f"\\{subfolder_name[sub_index]}.xlsx")
    worksheet = workbook.add_worksheet()
    for file in Path(subfolder_path[sub_index]).glob("*.txt"):
        with open(file, "r") as txt_file:
            encoded_file = file.read_text()
            worksheet.write(row, col, file.name[:-4])
            worksheet.write(row, col + 1, encoded_file)
            row += 1
        os.remove(file)
    workbook.close()
    sub_index += 1

如何使 Excel 文件中的文本与 TXT 文件中的文本显示相同?我正在使用 Python 3.8

标签: pythonpython-3.xexceltext

解决方案


Enetrati 和 jmcnamara 的评论为我指明了正确的方向,我在打开文本文件时设置了它的编码:

 with open(file, encoding="utf-8", mode="r") as txt_file:

在此更改之后,输出完全符合预期。


推荐阅读