首页 > 解决方案 > 如何使用带有“utf-8”编码的“filedialog.askopenfile”打开文件。我可以打开文件,但它以不同的编码打开

问题描述

当我通常打开文件时,我使用open语法,它让我可以选择使用特定编码打开,例如。

f = open('L2G8970_PSA_PVS_SmokeTest_Report_Trial.xml', encoding="utf8")

但是当我尝试使用 tkinter 的filedialog.askopenfile()语法时

filename = filedialog.askopenfilename()

文件以不同的编码打开。

请帮助了解如何使用 utf-8 编码导入。

标签: python-3.xtkinterencodingfiledialog

解决方案


from tkinter import filedialog

filename = filedialog.askopenfilename()
with open(filename, 'r', encoding='utf8') as file:
    textfromfile = file.read()
    file.close()
print(textfromfile)

上面的示例弹出一个文件对话框,让您选择一个文件,以读取方式加载文件,使用 utf-8 编码,并将其打印到控制台。

我将此解决方法与 filedialog.askopenfilename() 一起使用,因为 filedialog.askopenfile() 方法扰乱了我的文本文件中的一些字符(“ë”等)。

现在它工作正常,因为我使用的原始文本都是 utf-8 编码的。


推荐阅读