鱼C论坛

 找回密码
 立即注册
查看: 1309|回复: 4

[已解决]关于python-docx包的使用

[复制链接]
发表于 2021-11-18 13:56:54 | 显示全部楼层 |阅读模式

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

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

x
  1. import docx

  2. initi_text = docx.Document('demo.docx')
  3. arr = []
  4. for para in initi_text.paragraphs:
  5.     arr.append(para.text)
  6. # arr = ''.join(arr)

  7. doc = docx.Document()
  8. doc.add_paragraph(arr)
  9. doc.save('trans_for_docx.docx')
复制代码


从demo文档读取内容,写入trans_for_docx,写入后格式出现了变化。
源文档第一行文字居中,第二行文字从左到右,但是写入后的文档变成了一整排,回车空格什么的被自动删除了。这是什么原因?
最佳答案
2021-11-22 10:13:36
ilsoviet1917 发表于 2021-11-22 09:01
还是不太理解你的答案,现在不是提取字体,只是提取文字和格式。我的理解是,不管是居中还是空格还是段 ...

空格会自动保留,'回车'得改个形式:
  1. import docx

  2. txt = docx.Document('demo.docx')
  3. doc = docx.Document()
  4. for para in txt.paragraphs:
  5.     # t = TransateFunc(para.text) --> return: str
  6.     # doc.add_paragraph(t)
  7.     doc.add_paragraph(para.text)
  8. doc.save('trans_for_docx.docx')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-11-18 14:09:31 | 显示全部楼层
这是图
demo.png
trans.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-18 15:05:23 | 显示全部楼层
提取完字符串就只是字符串了,设置字体得自己来。
  1. >>> from docx.enum.text import WD_ALIGN_PARAGRAPH
  2. >>> document = Document()
  3. >>> paragraph = document.add_paragraph()
  4. >>> paragraph_format = paragraph.paragraph_format

  5. >>> paragraph_format.alignment
  6. None  # indicating alignment is inherited from the style hierarchy
  7. >>> paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
  8. >>> paragraph_format.alignment
  9. CENTER (1)
复制代码

如果是复制文件,直接shutil库复制即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-22 09:01:24 | 显示全部楼层
本帖最后由 ilsoviet1917 于 2021-11-22 09:33 编辑
suchocolate 发表于 2021-11-18 15:05
提取完字符串就只是字符串了,设置字体得自己来。

如果是复制文件,直接shutil库复制即可。


还是不太理解你的答案,现在不是提取字体,只是提取文字和格式。我的理解是,不管是居中还是空格还是段落首部空两格,都是空格和回车组成的,所以能在提取的时候保留空格和回车就行。

提取后还要进一步翻译,所以shutil不合适。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-22 10:13:36 | 显示全部楼层    本楼为最佳答案   
ilsoviet1917 发表于 2021-11-22 09:01
还是不太理解你的答案,现在不是提取字体,只是提取文字和格式。我的理解是,不管是居中还是空格还是段 ...

空格会自动保留,'回车'得改个形式:
  1. import docx

  2. txt = docx.Document('demo.docx')
  3. doc = docx.Document()
  4. for para in txt.paragraphs:
  5.     # t = TransateFunc(para.text) --> return: str
  6.     # doc.add_paragraph(t)
  7.     doc.add_paragraph(para.text)
  8. doc.save('trans_for_docx.docx')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 18:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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