免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 Python 求助
12
最近访问板块 发新帖
楼主: kim1211
打印 上一主题 下一主题

求助 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-06-01 20:39 |只看该作者
书上的例子是把
def lines(file):
    for line in file:
        yield line
        yield '\n'
   
def blocks(file):
    block=[]
    for line in lines(file):
        if line.strip():
            block.append(line)
        elif block:
            yield ''.join(block).strip()
            block=[]
放到util.py里
import sys, re
from util import *

print ''

title=True
for block in blocks(sys.stdin):
    block=re.sub(r'\*(.+?)\*',r'<em>\1</em>',block)
    if title:
        print '<h1>'
        print block
        print '</h1>'
        title=False
    else:
        print '<p>'
        print block
        print '</p>'
        print '</body></html>'
这部分是另外一个脚本 simple_markup.py
然后建一个TXT文件放几段文字
运行的命令是simple_markup.py <test_txt> test_output.html
但是运行报错

论坛徽章:
0
12 [报告]
发表于 2012-06-02 12:51 |只看该作者
如果脚本能够在屏幕上打印出结果就可以了,重定向到一个文件里不就行了,都不用改。
  1. test.py > test.html
复制代码

论坛徽章:
0
13 [报告]
发表于 2014-08-06 07:59 |只看该作者
我也遇到同样的问题,希望有解决了问题的分享一下...

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
14 [报告]
发表于 2014-08-06 11:19 |只看该作者
回复 13# gaomeng1447
下面代码应当基本可用,问题是不清楚最开始的re.sub是要做什么代换,原来代码的re.sub就去掉了。
  1. import sys, re
  2. from util import *

  3. def ReadFromFile(file):
  4.     title=True
  5.     result = ['<html><head><title>...</title></head><body>']
  6.     with open(file, 'r') as fh:
  7.         for block in blocks(fh):
  8.             if title:
  9.                 block = '<h1>' + block + '</h1>'
  10.                 result.append(block)
  11.                 title=False
  12.             else:
  13.                 result.append('<p>')
  14.                 result.append(block)
  15.                 result.append('</p>')
  16.     result.append('</body></html>')
  17.     return result

  18. def WriteToFile(file, content):
  19.     with open(file, 'w') as fh:
  20.         fh.write("\n".join(content))

  21. def main():
  22.     WriteToFile(sys.argv[2], ReadFromFile(sys.argv[1]))

  23. if __name__ == '__main__':
  24.     main()
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP