如何解决Python中的文件名元音重音显示异常问题
解决Python打印带重音文件名显示错误的问题
问题原因
这是因为输出终端编码不匹配,加上手动拼接路径引发的编码隐性冲突,导致带重音的Unicode字符(如ó、í)无法正确解析显示。
修复后的代码
import pikepdf import os import sys # 强制标准输出使用UTF-8编码,确保重音字符正确显示 sys.stdout.reconfigure(encoding='utf-8') # 替换内置函数名dir为dir_path,避免命名冲突 dir_path = '/content/Documentos/' for nombre_directorio, dirs, ficheros in os.walk(dir_path): for nombre_fichero in ficheros: # 使用os.path.join构建路径,自动处理编码和路径分隔符问题 input_pdf_path = os.path.join(nombre_directorio, nombre_fichero) output_pdf_path = os.path.join('/content/output/', nombre_fichero) pdf = pikepdf.open(input_pdf_path) pdf.save(output_pdf_path) print(output_pdf_path)
关键修复点
- 路径拼接优化:用
os.path.join替代手动字符串拼接,它会自动适配系统路径规则并处理编码相关隐性问题,避免文件名编码被破坏。 - 输出编码强制设置:通过
sys.stdout.reconfigure(encoding='utf-8')指定输出编码为UTF-8,确保终端能正确解析带重音的Unicode字符。 - 变量名规范:将
dir改为dir_path,避免与Python内置函数dir()冲突,减少潜在bug。
内容的提问来源于stack exchange,提问作者Carlos Berrocal
相关产品推荐
相关产品推荐

