鱼C论坛

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

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

[复制链接]
发表于 2021-1-11 15:10:54 | 显示全部楼层 |阅读模式
50鱼币
有一批Unicode编码的TXT文件需要处理,用Python打开时出现错误:LookupError: unknown encoding: Unicode
求教解决方法(最好不要改变TXT的文件格式,因为文件太多!)
1.程序代码如下:
  1. import openpyxl
  2. contents=[]
  3. def read_txt():
  4.     file_txt=open(r'1.txt','r',encoding = 'Unicode')#打开txt文件
  5.     for i in file_txt:
  6.         contents.append(i.split())#遍历txt文件内容存放到列表
  7.     file_txt.close()
  8.     print(contents)

  9. def write_excel():
  10.     wb=openpyxl.Workbook()#创建1个工作簿
  11.     ws=wb.create_sheet(u'测试1')#用工作簿去创建工作表sheet
  12.     for i,content in enumerate(contents):
  13.         for j in range(len(content)):
  14.             ws.cell(i+1,j+1,content[j])#用工作表sheet调用单元格,写入内容
  15.     wb.save('2.xlsx')#保存文件名

  16. read_txt()
  17. write_excel()
复制代码

2. 错误提示如下:
  1. Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 18 2019, 23:46:00) [MSC v.1916 32 bit (Intel)] on win32
  2. Type "help", "copyright", "credits" or "license()" for more information.
  3. >>>
  4. =============== RESTART: E:\Work\Python\Excel\04-txt写入Excel文件.py ===============
  5. Traceback (most recent call last):
  6.   File "E:\Work\Python\Excel\04-txt写入Excel文件.py", line 18, in <module>
  7.     read_txt()
  8.   File "E:\Work\Python\Excel\04-txt写入Excel文件.py", line 4, in read_txt
  9.     file_txt=open(r'1.txt','r',encoding = 'Unicode')#打开txt文件
  10. LookupError: unknown encoding: Unicode
复制代码
最佳答案
2021-1-11 15:10:55
本帖最后由 tryhi 于 2021-1-11 15:19 编辑


  1. import chardet
  2. f=open('1.txt', 'rb')
  3. data = f.read()
  4. print(chardet.detect(data))

复制代码


先判断一下是什么格式吧


Unicode编码应该是用UTF-16

最佳答案

查看完整内容

先判断一下是什么格式吧 Unicode编码应该是用UTF-16
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-11 15:10:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 tryhi 于 2021-1-11 15:19 编辑


  1. import chardet
  2. f=open('1.txt', 'rb')
  3. data = f.read()
  4. print(chardet.detect(data))

复制代码


先判断一下是什么格式吧


Unicode编码应该是用UTF-16
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2021-1-11 15:38:33 | 显示全部楼层
把 encoding = 'Unicode' 改成 encoding = 'utf-8' 试试,txt的话应该是吧,或者判断一下到底是什么编码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 06:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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