鱼C论坛

 找回密码
 立即注册
查看: 845|回复: 2

[已解决]python读取word文档,显示无法解码

[复制链接]
发表于 2019-4-9 18:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yi安 于 2019-4-9 18:03 编辑
  1. import docx
  2. from docx import Document

  3. file_con = []
  4. path = input("请输入文件路径:")
  5. path_con = path[-1:-5:-1]  # 用来判断是否为docx文档
  6. if path_con == "xocd":
  7.      doc_text_path = Document(path)
  8.         for i in doc_text_path.paragraphs:
  9.                 file_con += i.text# 将段落对象,转换成文本,并存储
  10.             print(file_con)
  11. else:
  12.       with   open(path, "r")  as f_obj:
  13.           file_con = file_off.read()# 将文本以字符串的形式保存到file_con中  
  14.        print(file_con)
复制代码
输入.txt文件时,运行没有任何问题。但是输入.docx文件时运行显示:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xeb in position 16: illegal multibyte sequence
UnicodeDecodeError:'gbk'编解码器无法解码位置16的字节0xeb:非法多字节序列

最佳答案
2019-4-9 18:28:09
>>> path = r'D:\Users\Administrator\Desktop\新建 Microsoft Word 文档.docx'
>>> path_con = path[-1:-5:-1]
>>> path_con
'xcod'

if path_con == "xocd":

path_con = path[-4:] 这样不就好了

你这是搞个代码让人来找问题的吧,这么多问题

  1. import docx
  2. from docx import Document




  3. path = input("请输入文件路径:")
  4. path_con = path[-4:]  # 用来判断是否为docx文档

  5. if path_con == "docx":
  6.     doc_text_path = Document(path)
  7.     file_con=''
  8.     for i in doc_text_path.paragraphs:
  9.         file_con += i.text# 将段落对象,转换成文本,并存储
  10.         print(file_con)
  11. else:
  12.     with   open(path, "r")  as f_obj:
  13.         file_con = file_off.read()# 将文本以字符串的形式保存到file_con中  
  14.         print(file_con)
复制代码


这代码测式没题,如果你测式还有问题,那么说明你的文档内容中有特殊的文字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-9 18:28:09 | 显示全部楼层    本楼为最佳答案   
>>> path = r'D:\Users\Administrator\Desktop\新建 Microsoft Word 文档.docx'
>>> path_con = path[-1:-5:-1]
>>> path_con
'xcod'

if path_con == "xocd":

path_con = path[-4:] 这样不就好了

你这是搞个代码让人来找问题的吧,这么多问题

  1. import docx
  2. from docx import Document




  3. path = input("请输入文件路径:")
  4. path_con = path[-4:]  # 用来判断是否为docx文档

  5. if path_con == "docx":
  6.     doc_text_path = Document(path)
  7.     file_con=''
  8.     for i in doc_text_path.paragraphs:
  9.         file_con += i.text# 将段落对象,转换成文本,并存储
  10.         print(file_con)
  11. else:
  12.     with   open(path, "r")  as f_obj:
  13.         file_con = file_off.read()# 将文本以字符串的形式保存到file_con中  
  14.         print(file_con)
复制代码


这代码测式没题,如果你测式还有问题,那么说明你的文档内容中有特殊的文字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-9 18:31:54 | 显示全部楼层
感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 10:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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