鱼C论坛

 找回密码
 立即注册
查看: 1901|回复: 3

[已解决]Python打开Unicode编码的TXT文件问题

[复制链接]
发表于 2021-1-11 15:10:54 | 显示全部楼层 |阅读模式
50鱼币
有一批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[j])#用工作表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) [MSC v.1916 32 bit (Intel)] 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
最佳答案
2021-1-11 15:10:55
本帖最后由 tryhi 于 2021-1-11 15:19 编辑
import chardet
f=open('1.txt', 'rb')
data = f.read()
print(chardet.detect(data))

先判断一下是什么格式吧


Unicode编码应该是用UTF-16

最佳答案

查看完整内容

先判断一下是什么格式吧 Unicode编码应该是用UTF-16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-11 15:10:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 tryhi 于 2021-1-11 15:19 编辑
import chardet
f=open('1.txt', 'rb')
data = f.read()
print(chardet.detect(data))

先判断一下是什么格式吧


Unicode编码应该是用UTF-16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-11 15:33:02 From FishC Mobile | 显示全部楼层
这个报错原因是没有encoding = 'Unicode'中的Unicode这个用法,就如楼上说的,用chardet模块去判断文件真实编码,而不是随便写一个Unicode上去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-11 15:38:33 | 显示全部楼层
把 encoding = 'Unicode' 改成 encoding = 'utf-8' 试试,txt的话应该是吧,或者判断一下到底是什么编码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表