Python之html与markdown互相转换

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之html与markdown互相转换相关的知识,希望对你有一定的参考价值。

前言

Typora可以很容易的将md导出为html,我一直都有想法就是将html还原为markdown,于是在网上整理了几种方法,以便后期使用。

如果你只是转换单个文件,推荐直接在线转换:Link Link Link

1. html2text

pip install html2text

转换代码:

import html2text

md_text = open('ret.html', 'r', encoding='utf-8').read()

markdown = html2text.html2text(md_text)

with open('make2.md', 'w', encoding='utf-8') as file:
    
    file.write(markdown)
    

2. html2markdown

pip install html2markdown

转换代码:

import html2markdown

md_text = open('ret.html', 'r', encoding='utf-8').read()

markdown = html2markdown.convert(md_text)

with open('make3.md', 'w', encoding='utf-8') as file:
    
    file.write(markdown)

经过测试觉得html2text模块的转换还可以!

3. pandoc

pip install pandoc

在需要转换的目录下打开cmd

将md转换为HTML:

pandoc -f markdown -t html -o a.html a.md

HTML转化为md:

pandoc -f html -t markdown -o b.md b.html

4. 批处理

多个文件同时转换,示例代码:

html转md:

import os

path = r'文件路径'
all = os.listdir(path)
for file in all:
    if file.endswith('.html'):
    	name = os.path.splitext(file)[0]
        os.system('cd  && pandoc -f html  -t markdown -o  .md .html '.format(path, os.path.splitext(name)[0], os.path.splitext(name)[0]))
"""
@Author: ZS
@CSDN  : https://zsyll.blog.csdn.net/
@Time  : 2021/11/25 12:36
"""
import html2text
import os

for root, dirs, files in os.walk(r'E:\\Python资料', topdown=True):
    for name in files:
        path = os.path.join(root, name)
        if path.endswith('.html'):
            with open(path, encoding='utf-8') as html, open(os.path.join(root, os.path.splitext(name)[0] + '.md'), 'w', encoding='utf-8') as md:
                markdown = html2text.html2text(html.read())
                md.write(markdown)

                print(os.path.splitext(name) + ' 转换成功!')

参考Llink Link


加油!

感谢!

努力!

以上是关于Python之html与markdown互相转换的主要内容,如果未能解决你的问题,请参考以下文章

python object与dict互相转换

python中time类型,datetime类型的关系与互相转换

Python之dict(或对象)与json之间的互相转化

Python之dict(或对象)与json之间的互相转化

python中json与dict之间转换

Python摄氏度与华氏度互相转化