文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python分割器怎么使用

2023-06-17 15:32

关注

这篇文章主要讲解了“Python分割器怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python分割器怎么使用”吧!

  1. # 将txt小说分割转换成多个HTML文件   

  2. # @author : GreatGhoul   

  3. # @email : greatghoul@gmail.com   

  4. # @blog : http://greatghoul.javaeye.com   

  5. import re   

  6. import os   

  7. # regex for the section title   

  8. # sec_re = re.compile(r'第.+卷\s+.+\s+第.+章\s+.+')   

  9. # txt book's path.   

  10. source_path = 'f:\\佣兵天下.txt'   

  11. path_pieces = os.path.split(source_path)   

  12. novel_title = re.sub(r'(\..*$)|($)', '', path_pieces[1])   

  13. target_path = '%s%s_html' % (path_pieces[0], novel_title)   

  14. section_re = re.compile(r'^\s*第.+卷\s+.*$')   

  15. section_head = '''''   

  16. <html>   

  17. <head>   

  18. <meta http-equiv="Content-Type" content="GBK"/>   

  19. <title>%s</title>   

  20. </head>   

  21. <body style="font-family:楷体,宋体;font-size:16px; 
    margin:0;   

  22. padding: 20px; background:#FAFAD2;color:#2B4B86;text
    -align:center;">   

  23. <h3>%s</h3><a href="#bottom">去页尾</a><hr/>'''   

  24. # escape xml/html   

  25. def escape_xml(code):   

  26. text = code   

  27. text = re.sub(r'<', '&lt;', text)   

  28. text = re.sub(r'>', '&gt;', text)   

  29. text = re.sub(r'&', '&amp;', text)   

  30. text = re.sub(r'\t', '&nbsp;&nbsp;&nbsp;&nbsp;', text)   

  31. text = re.sub(r'\s', '&nbsp;', text)   

  32. return text   

  33. # entry of the script   

  34. def main():   

  35. # create the output folder   

  36. if not os.path.exists(target_path):   

  37. os.mkdir(target_path)   

  38. # open the source file   

  39. input = open(source_path, 'r')   

  40. sec_count = 0   

  41. sec_cache = []   

  42. idx_cache = []   

  43. output = open('%s\\%d.html' % (target_path, sec_count), 'w')   

  44. preface_title = '%s 前言' % novel_title   

  45. output.writelines([section_head % (preface_title, 
    preface_title)])   

  46. idx_cache.append('<li><a href="%d.html">%s</a></li>'   

  47. % (sec_count, novel_title))   

  48. for line in input:   

  49. # is a chapter's title?   

  50. if line.strip() == '':   

  51. pass   

  52. elif re.match(section_re, line):   

  53. line = re.sub(r'\s+', ' ', line)   

  54. print 'converting %s...' % line   

  55. # write the section footer   

  56. sec_cache.append('<hr/><p>')   

  57. if sec_count == 0:   

  58. sec_cache.append('<a href="index.html">目录</a>&nbsp;|&nbsp;')   

  59. sec_cache.append('<a href="%d.html">下一篇</a>&nbsp;|&nbsp;'   

  60. % (sec_count + 1))   

  61. else:   

  62. sec_cache.append('<a href="%d.html">上一篇</a>&nbsp;|&nbsp;'   

  63. % (sec_count - 1))   

  64. sec_cache.append('<a href="index.html">目录</a>&nbsp;|&nbsp;')   

  65. sec_cache.append('<a href="%d.html">下一篇</a>&nbsp;|&nbsp;'   

  66. % (sec_count + 1))   

  67. sec_cache.append('<a name="bottom" href="#">回页首</a></p>')   

  68. sec_cache.append('</body></html>')   

  69. output.writelines(sec_cache)   

  70. output.flush()   

  71. output.close()   

  72. sec_cache = []   

  73. sec_count += 1   

  74. # create a new section   

  75. output = open('%s\\%d.html' % (target_path, sec_count), 'w')   

  76. output.writelines([section_head % (line, line)])   

  77. idx_cache.append('<li><a href="%d.html">%s</a></li>'   

  78. % (sec_count, line))   

  79. else:   

  80. sec_cache.append('<p style="text-align:left;">%s</p>'   

  81. % escape_xml(line))   

  82. # write rest lines   

  83. sec_cache.append('<a href="%d.html">下一篇</a>&nbsp;|&nbsp;'   

  84. % (sec_count - 1))   

  85. sec_cache.append('<a href="index.html">目录</a>&nbsp;|&nbsp;')   

  86. sec_cache.append('<a name="bottom" href="
    #">回页首</a></p></body></html>')   

  87. output.writelines(sec_cache)   

  88. output.flush()   

  89. output.close()   

  90. sec_cache = []   

  91. # write the menu   

  92. output = open('%s\\index.html' % (target_path), 'w')   

  93. menu_head = '%s 目录' % novel_title   

  94. output.writelines([section_head % (menu_head, menu_head), 
    '<ul style="text-align:left">'])   

  95. output.writelines(idx_cache)   

  96. output.writelines(['</ul><body></html>'])   

  97. output.flush()   

  98. output.close()   

  99. inx_cache = []   

  100. print 'completed. %d chapter(s) in total.' % sec_count   

  101. if __name__ == '__main__':   

  102. main()  

感谢各位的阅读,以上就是“Python分割器怎么使用”的内容了,经过本文的学习后,相信大家对Python分割器怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯