鱼C论坛

 找回密码
 立即注册
查看: 1582|回复: 12

[已解决]这个怎么解决啊(走过路过千万别错过,大爷姑娘们进来瞧一瞧)

[复制链接]
发表于 2019-11-28 16:20:53 | 显示全部楼层 |阅读模式

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

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

x
iShot     2019-11-28 下午04.02.28.jpg

我的是mac
这个打开的文件怎么转义成汉字啊

太难了
最佳答案
2019-11-28 22:20:33
本帖最后由 哈喇子淌一手 于 2019-11-28 22:26 编辑
  1. from win32com.client import Dispatch, constants

  2. def processParagraphs(_document):
  3.     par=_document.Paragraphs.First
  4.     while par!=None:
  5.         print(par.Range.Text)
  6.         par=par.Next()
  7. def processWordDocument(iFilePath,oFilePath='opt.docx'):
  8.     w = Dispatch('Word.Application')
  9.     # 或者使用下面的方法,使用启动独立的进程:
  10.     # w = win32com.client.DispatchEx('Word.Application')

  11.     # 后台运行,显示程序界面,不警告
  12.     w.Visible = 1 #这个至少在调试阶段建议打开,否则如果等待时间长的话,它至少给你耐心。。。
  13.     w.DisplayAlerts = 0
  14.     document=w.Documents.Open(iFilePath)
  15.     processParagraphs(document)
  16. if __name__ == "__main__":
  17.     # processWordDocument(r'C:\Users\x811\mysite\111.docx')
  18.     processWordDocument(r'C:\Users\Administrator\Downloads\myProjects\testFiles\word手写实验\me.rtf')
复制代码

没看见你是mac,mac msoffice 没有com服务器,写vsto吧,很麻烦,if not,wine|crossover。
iShot     2019-11-28 下午04.02.28.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-28 16:26:51 | 显示全部楼层

大佬在哪里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-28 16:26:59 | 显示全部楼层
rtf文件是二进制文件,不是文本文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-28 16:41:21 | 显示全部楼层
呃,多信息文本稿,在python有办法转换解决吗,我去试试.doc的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-28 16:48:22 | 显示全部楼层
iShot     2019-11-28 下午04.45.49.jpg
新建了一个ve.docx的文件,
还是不行,这个要怎么转化啊,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-28 17:08:19 | 显示全部楼层
没人吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-28 17:56:09 | 显示全部楼层
文件直接读能直接输出的基本都是纯文本文件
rtf,docx 都不是纯文本格式,这些都是特殊的格式需要特殊的解析。 比如docx是word文件的格式,其实他是一个zip压缩包,包里有各种xml文件组成,你可以试试把docx的后缀改成zip,然后在解压来看,你就知道怎么回事了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-28 19:46:48 | 显示全部楼层
lff 发表于 2019-11-28 17:56
文件直接读能直接输出的基本都是纯文本文件
rtf,docx 都不是纯文本格式,这些都是特殊的格式需要特殊的解 ...

喔喔,好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-28 20:08:38 From FishC Mobile | 显示全部楼层
我解决过这个事情,一会给你发代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-28 20:25:32 | 显示全部楼层
open() 函数只能读取用文本文档打开不为乱码的文件,对于 .rtf 和 .docx 这些其他格式的二进制文件需要用第三方库打开。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-28 21:13:19 | 显示全部楼层
在打开文件的时候把encoding设置成这样:encoding = 'utf-8'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-28 22:20:33 | 显示全部楼层    本楼为最佳答案   
本帖最后由 哈喇子淌一手 于 2019-11-28 22:26 编辑
  1. from win32com.client import Dispatch, constants

  2. def processParagraphs(_document):
  3.     par=_document.Paragraphs.First
  4.     while par!=None:
  5.         print(par.Range.Text)
  6.         par=par.Next()
  7. def processWordDocument(iFilePath,oFilePath='opt.docx'):
  8.     w = Dispatch('Word.Application')
  9.     # 或者使用下面的方法,使用启动独立的进程:
  10.     # w = win32com.client.DispatchEx('Word.Application')

  11.     # 后台运行,显示程序界面,不警告
  12.     w.Visible = 1 #这个至少在调试阶段建议打开,否则如果等待时间长的话,它至少给你耐心。。。
  13.     w.DisplayAlerts = 0
  14.     document=w.Documents.Open(iFilePath)
  15.     processParagraphs(document)
  16. if __name__ == "__main__":
  17.     # processWordDocument(r'C:\Users\x811\mysite\111.docx')
  18.     processWordDocument(r'C:\Users\Administrator\Downloads\myProjects\testFiles\word手写实验\me.rtf')
复制代码

没看见你是mac,mac msoffice 没有com服务器,写vsto吧,很麻烦,if not,wine|crossover。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-29 09:02:17 | 显示全部楼层
哈喇子淌一手 发表于 2019-11-28 22:20
没看见你是mac,mac msoffice 没有com服务器,写vsto吧,很麻烦,if not,wine|crossover。


太高深了,后来我百度了一下还是在mac上建立txt,这样容易一些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 07:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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