python - 在 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
解决方案
Enetrati 和 jmcnamara 的评论为我指明了正确的方向,我在打开文本文件时设置了它的编码:
with open(file, encoding="utf-8", mode="r") as txt_file:
在此更改之后,输出完全符合预期。
推荐阅读
- inno-setup - Inno Setup 正在扩展进度样式
- python - Django:如何破坏关系
- python - 调用python函数
- flutter - NoSuchMethodError:在 null 上调用了方法“add”——尝试调用:add(“FittedBox”的实例)
- java - JPackage(孵化器)和SQLite数据库问题
- r - 使用 R Separate_Rows 不适用于“|”
- c# - 在同一 Visual Studio 表单中而不是在新窗口中打开链接 (C#)
- r - 在 R 中为分类/连续变量操作 ggplor2
- python - 推送拒绝了 Heroku Python Flask 要求失败 exiv2==0.3.1
- computer-vision - HALCON min_mas_grey()