我正在尝试编写一个 Python 程序,该程序从 LabView 中获取多个二进制文件,从 tkinter 对话框中选择并打开,并将它们转换为可读的文本文件(或 csv 文件,理想情况下)。但是,我在二进制到文本转换方面遇到了麻烦。
我尝试查看 binascii 模块。我不清楚您是否可以使用此模块来转换多页文件,只能转换短字符串。
所以,现在,我想我应该以 utf-8 编码打开文件,然后以该编码读取/写入它。也许这不是最快或最可靠的路线,但我在这里编写了一个简短的代码:
from tkinter import Tk, filedialog
root = Tk();
files = filedialog.askopenfilenames(parent=root,title='Choose a file')
print ('The tuple that represents your selected files is ', root.tk.splitlist(files))
fileslist = list(files)
print ('The list (mutable) that represents your selected files is ', fileslist)
for file in fileslist:
with open(file, encoding="utf-8") as f:
print (f.read())
我导入 tkinter,获取一个文件对话框,然后将我选择的多个文件的元组转换为列表。但是,我注意到该文件在“for file in fileslist”for 循环中被读取为字符串。我不确定这就是我想要的。无论如何,任何解决以下问题的帮助将不胜感激:
-
将二进制文件转换为可读文本文件-- 我知道它们是二进制文件,我不确定具体的字符编码;如果您在写字板中打开该文件,它的第一个字符是 b。
-
帮助创建一个循环来保存转换后选择的文件在它们来自的同一个列表中,以便用户可以进行进一步的操作。
如果我按原样运行代码,则会收到以下错误输出:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 371: invalid start byte
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)