Python打开Unicode编码的TXT文件问题
有一批Unicode编码的TXT文件需要处理,用Python打开时出现错误:LookupError: unknown encoding: Unicode求教解决方法(最好不要改变TXT的文件格式,因为文件太多!)
1.程序代码如下:
import openpyxl
contents=[]
def read_txt():
file_txt=open(r'1.txt','r',encoding = 'Unicode')#打开txt文件
for i in file_txt:
contents.append(i.split())#遍历txt文件内容存放到列表
file_txt.close()
print(contents)
def write_excel():
wb=openpyxl.Workbook()#创建1个工作簿
ws=wb.create_sheet(u'测试1')#用工作簿去创建工作表sheet
for i,content in enumerate(contents):
for j in range(len(content)):
ws.cell(i+1,j+1,content)#用工作表sheet调用单元格,写入内容
wb.save('2.xlsx')#保存文件名
read_txt()
write_excel()
2. 错误提示如下:
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 18 2019, 23:46:00) on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
=============== RESTART: E:\Work\Python\Excel\04-txt写入Excel文件.py ===============
Traceback (most recent call last):
File "E:\Work\Python\Excel\04-txt写入Excel文件.py", line 18, in <module>
read_txt()
File "E:\Work\Python\Excel\04-txt写入Excel文件.py", line 4, in read_txt
file_txt=open(r'1.txt','r',encoding = 'Unicode')#打开txt文件
LookupError: unknown encoding: Unicode 本帖最后由 tryhi 于 2021-1-11 15:19 编辑
import chardet
f=open('1.txt', 'rb')
data = f.read()
print(chardet.detect(data))
先判断一下是什么格式吧
Unicode编码应该是用UTF-16 这个报错原因是没有encoding = 'Unicode'中的Unicode这个用法,就如楼上说的,用chardet模块去判断文件真实编码,而不是随便写一个Unicode上去 把 encoding = 'Unicode' 改成 encoding = 'utf-8' 试试,txt的话应该是吧,或者判断一下到底是什么编码
页:
[1]