python练习一—文本转化渲染为html

本文介绍了作者通过Python学习过程中的一个练习项目——将文本转化为HTML。项目包含四个模块,分别负责文本格式化、规则定义、规则处理和整体解析。在实践中,作者学习了子类调用父类方法、正则表达式以及模块化设计的思想,感受到其对项目结构的清晰和扩展性的好处。
摘要由CSDN通过智能技术生成

想学习python已经很久了,以前使用ArcGIS的时候学习过一些简单的python语法,用来进行一些简单的GIS数据处理,但是后来并没有用到工作中也就荒废了,后来断断续续看过一些,最近想学习一门新的语言,就拿python下手了,仔细考(拼)虑(凑)出以下理由(喜欢就是喜欢,不用理由):

  • python强大库支持,在科学计算、人工智能等高精尖的领域使用甚广
  • 在运维中也算是除shell外的第二语言吧
  • 学习渗透测试的时候很多poc都是使用python写的,为了不仅仅停留在使用工具上,进一步学习
  • 在web中python也是快速开发的利器

本次学习主要是《python基础教程》第二版,简单回顾了前面几章基础知识后,开始拿后面的练习来学习,虽然代码大部分是直接参考书中源码,但是“纸上得来终觉浅,绝知此事要躬行”可不是废话,学习这件事不动手就是耍流氓,在自己动手编写书中例子的时候对python的语法和思想理解逐渐加深。先来一发


为了避免直接上代码略显突兀,显写出这个练习项目的思路:

先撇开具体实现,想想如果要实现将文本转化位html的做法:

  1. 文本一定时满足一定规则的
  2. 读取文本内容
  3. 根据预定义的规则分析读入的文本内容
  4. 符合某一种规则的文本加上对应的html标签
  5. 继续读入文本,回到2继续处理

再回来书中的项目,本项目共包含四个模块

  1. util.py:负责对文本进行一定的格式化,并读取文本
  2. rule.py:定义什么样的文本可以转化为什么样的html,两件事儿:
    1. 定义文本和html对应的规则
    2. 决定规则对应的处理程序(handler)
  3. handler.py:将给定规则的文本转换为html
  4. parse.py:调用util.py读取文本,调用rule.py判断文本对应的规则,调用handler处理给定规则的文本

这样子基本脉络已经清晰了,看代码

util.py

# -*- coding=utf-8 -*-

def lines(file):
    '''
    给每个段落强制添加一个空行
    '''
    for line in file :
        yield line
    yield '\n'


def blocks(file):
    '''
    将输入的文件按按空行分块
    '''
    block = []

    for line in lines(file):
        if line.strip():
            # line不是空行,属于一个块
            block.append(line)
        elif block:
            # 当前行是空行,block不为空,块已经结束,返回块
            yield ''.join(block).strip()
            block = []
View Code

handler.py

# -*- coding=utf-8 -*-

class Handler:
    def callback(self, prefix, name, *args):
        method = getattr(self, prefix+name, None)
        if callable(method):
            return method(*arg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值