如何利用python docx自动化提取文档中代码段

许多英文编程原版书籍中,并没有提供完整的源码,如果全部人肉实践,面对这样一部部大部头也是很辛苦的事情。


好在我们有了docx模块工具,下面简单说明下如何利用python docx自动化提取英文文档中的代码。

简单概述下这个问题,最近翻出了一本<linux shell scripting cookbook>。希望能实践下里面的一些命令行,手敲当然是没问题的。这也不符合一个程序员的习惯,翻了下python docx的文档。发现了一个途径如下:

1 英文书籍中,source code和warning等都是特殊字体标注的

2 转化英文书籍为docx格式,推荐calibre格式转化工具

3 利用python docx读取docx文件,利用字体类型来判断是否为代码示例

4 打印代码内容。如果书籍为pdf格式,类似步骤,不再实践。


先来看疗效

shine@z210:~/py$ python3  docx-rd.py  > shell-cookbook-cmd-log.txt

成功抓取了这些内容,如下

se@x:~/py$ head shell-cookbook-cmd-log.txt

#!/bin/bash #Filename: print

%s

%-5s

echo -e "1\t2\t3" 1 2 3

echo -e "\e[1;31m This is red text \e[0m"

echo -e "\e[1;42m Green Background \e[0m"

cat /proc/$PID/environ

$ pgrep gedit 12501

$ cat /proc/12501/environ GDM_KEYBOARD_LAYOUT=usGNOME_KEYRING_PID=1560USER=slynuxHOME=/home/slynux

$ cat /proc/12501/environ



好了,最后附上简单的代码片段,运行环境python3

se@x:~/py$ cat docx-rd.py

#coding=utf-8

from docx import Document

document = Document(u'lssc.docx')#load the docx file

for parap in document.paragraphs:#Iterate the paragraph

    if len(parap.runs) is not 0 and parap.runs[0].font.name == 'Courier New': #Here is an example

        print(parap.runs[0].text)#In this docs,Courier New is the source code font style,just print it!

以上,谢谢阅览。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容

  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,213评论 4 16
  • 1、终端 终端是交互式工具,用户可以通过终端与shell环境进行交互。shell命令都是在shell终端中输入并执...
    ruready阅读 461评论 0 1
  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 10,042评论 3 53
  • 昨天,无意中翻到了蒋勋先生的《孤独六讲》,一个人默默地打开书页,不由得也一个人默默地思索上了孤独的含义。孤 ,指幼...
    兮河阅读 594评论 0 4
  • 文 / 柒秒鱼忆 图 / 侵删歉 -01- 诺大的房间里,只有我一人。 今天,是我生日。 在李阳又一次发来:“宝宝...
    柒秒鱼忆阅读 551评论 17 10