ITS·黑客

【Python】实验-文本解析器.1

2017-05-06  本文已影响18人  阿凯Awesome

1.util.py:文本块生成器,把纯文本分成一个一个的文本块;
2.handlers.py:为文本块打上合适的 HTML 标记;
3.rules.py:设计规则来判断每个文本块交给处理程序将要加什么标记;
4.markup.py:对整个文本进行解析的程序。

一、文本块生成器

>>> s='   This is me   \n'
>>> s=s.strip()
>>> s
'This is me'

如果在strip()函数添加不同的参数,如strip("me"),则可以去除字符串前后的"me"字符,同时去除字符串前后空格以及换行符的功能失效。

>>> s='   This is me'
>>> s=s.strip('me')
>>> s
'   This is '
>>> str = "-"
>>> seq = ("a", "b", "c") # 字符串序列
>>>print str.join( seq )
a-b-c

二、处理程序

 >>> class test():
 ...     name="abc"
 ...     def run(self):
 ...             return "HelloWord"
 ...
 >>> t=test()
 >>> getattr(t, "name")    #获取name属性,存在就打印出来。
 'abc'
 >>> getattr(t, "run")     #获取run方法,存在就打印出方法的内存地址。
 <bound method test.run of <__main__.test instance at 0x0269C878>>
 >>> getattr(t, "run")()     #获取run方法,后面加括号可以将这个方法运行。
 'HelloWord'
 >>> getattr(t, "age")    #获取一个不存在的属性。
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 AttributeError: test instance has no attribute 'age'
 >>> getattr(t, "age","18")     #若属性不存在,返回一个默认值。
 '18'

(尚有不足,需要再掌握更高水平的知识)

#######三、规则
#######
四、解析
(深入学习后,再读代码)

五、运行

$ python markup.py < test.txt > test.html

上一篇 下一篇

猜你喜欢

热点阅读