Pypandoc 为 pandoc(一个通用文档转换器)提供了一个轻量级的封装。
Pypandoc 使用 pandoc,因此需要可用的 pandoc 安装。Pypandoc 提供了两个包:"pypandoc" 和 "pypandoc_binary",后者包含了开箱即用的 pandoc。 这两个包完全相同,唯一的区别是一个包含 pandoc,而另一个不包含。
如果已经安装了 pandoc(即 pandoc 在 PATH 中),pypandoc 会使用版本号较高的版本,如果版本号相同,则使用已安装的版本。有关更多信息,请参阅指定 pandoc 二进制文件的位置。
要使用 pandoc 过滤器,您必须在机器上安装相关的过滤器。
如果您想自己安装 pandoc 或使用不受支持的平台,您需要安装 "pypandoc" 并手动安装 pandoc
pip install pypandoc
如果您想要开箱即用的 pandoc,可以使用我们的 pypandoc_binary 包,它与 "pypandoc" 包完全相同,但包含了 pandoc。
pip install pypandoc_binary
如果您使用 Linux 并有自己的 wheelhouse,
您可以构建一个包含 pandoc 的 wheel,使用
python setup_binary.py download_pandoc; python setup.py bdist_wheel。请注意,这仅适用于
64 位 Intel 系统,因为我们只从官方发布下载。
Pypandoc 包含在 conda-forge 中。conda 包也会 安装 pandoc 包,因此 pandoc 在安装中可用。
通过 conda install -c conda-forge pypandoc 安装。
您还可以通过 conda config --add channels conda-forge 将该频道添加到您的 conda 配置中。这样就可以
直接使用 conda install pypandoc,并通过 conda update pypandoc 进行更新。
如果您的系统上还没有 pandoc,或者没有安装包含 pandoc 的 pypandoc_binary 包,您需要自己安装 pandoc。
在 Windows、Mac OS X 或 Linux(基于 Intel,64 位)上可以通过 pypandoc 安装:
pip install pypandoc from pypandoc.pandoc_download import download_pandoc # 请参阅文档了解如何自定义安装路径 # 但请注意,您需要将其包含在 `PATH` 中 download_pandoc()
默认安装位置已包含在 pandoc 的搜索路径中,因此您
不需要将其添加到 PATH 中。
默认情况下,会安装最新的 pandoc 版本。如果您想指定自己的版本,比如 1.19.1,请使用 download_pandoc(version='1.19.1') 替代。
也可以通过系统机制手动安装。这种安装机制 使 pandoc 在更多平台上可用:
sudo apt-get install pandocsudo yum install pandocsudo pacman -S pandocbrew install pandoc pandoc-citeproc Caskroom/cask/mactexcabal-install pandocpkg install hs-pandoc请注意,并非所有安装机制都会将 pandoc 放入 PATH 中,因此您需要
自己更改 PATH 或在 PYPANDOC_PANDOC 中设置 pandoc 的完整 PATH。
有关更多信息,请参阅下一节。
您可以通过设置环境变量 PYPANDOC_PANDOC 来指向特定的 pandoc 版本,
将其设置为 pandoc 二进制文件的完整 PATH
(PYPANDOC_PANDOC=/home/x/whatever/pandoc 或 PYPANDOC_PANDOC=c:\pandoc\pandoc.exe)。
如果设置了此环境变量,这将是唯一搜索 pandoc 的地方。
在某些情况下,例如安装了 pandoc 但具有自己用户的 Web 服务器 无法找到二进制文件,在运行时指定位置会很有 用:
import os os.environ.setdefault('PYPANDOC_PANDOC', '/home/x/whatever/pandoc')
使用 pypandoc 有两种基本方式:使用输入文件或使用输入 字符串。
import pypandoc # 使用输入文件:它会从文件名推断输入格式 output = pypandoc.convert_file('somefile.md', 'rst') # ...但您可以通过 `format` 参数覆盖格式: output = pypandoc.convert_file('somefile.txt', 'rst', format='md') # 或者您也可以直接传递一些字符串。在这种情况下,您需要 # 定义输入格式: output = pypandoc.convert_text('# some title', 'rst', format='md') # output == 'some title\r\n==========\r\n\r\n'
convert_text 期望这个字符串是 unicode 或 utf-8 编码的字节。convert_* 将始终
返回一个 unicode 字符串。
也可以直接让 pandoc 将输出写入文件。这是转换为某些输出格式的唯一方法
(例如 odt、docx、epub、epub3、pdf)。在这种情况下,convert_*() 将
返回一个空字符串。
import pypandoc output = pypandoc.convert_file('somefile.md', 'docx', outputfile="somefile.docx") assert output == ""
还可以指定多个输入文件给 pandoc,可以是绝对路径、相对路径或文件模式。
import pypandoc # 转换 chapters/ 子目录中的所有 markdown 文件。 pypandoc.convert_file('chapters/*.md', 'docx', outputfile="somefile.docx") # 转换 book1 和 book2 目录中的所有 markdown 文件。 pypandoc.convert_file(['book1/*.md', 'book2/*.md'], 'docx', outputfile="somefile.docx") # 转换另一个驱动器上的前言,以及 chapter 目录中的所有 markdown 文件。 pypandoc.convert_file(['D:/book_front.md', 'book2/*.md'], 'docx', outputfile="somefile.docx")
也支持 pathlib。
import pypandoc from pathlib import Path # 单个文件 input = Path('somefile.md') output = input.with_suffix('.docx') pypandoc.convert_file(input, 'docx', outputfile=output) # 转换 chapters/ 子目录中的所有 markdown 文件。 pypandoc.convert_file(Path('chapters').glob('*.md'), 'docx', outputfile="somefile.docx") # 转换 book1 和 book2 目录中的所有 markdown 文件。 pypandoc.convert_file([*Path('book1').glob('*.md'), *Path('book2').glob('*.md')], 'docx', outputfile="somefile.docx") # 如果 pathlib globs 在列表内部,必须解包。
除了 format,还可以传递 extra_args。
这使得可以轻松访问各种 pandoc 选项。
output = pypandoc.convert_text( '<h1>Primary Heading</h1>', 'md', format='html', extra_args=['--atx-headers']) # output == '# Primary Heading\r\n' output = pypandoc.convert_text( '# Primary Heading', 'html', format='md', extra_args=['--base-header-level=2']) # output == '<h2 id="primary-heading">Primary Heading</h2>\r\n'
pypandoc 现在支持轻松添加 pandoc 过滤器。
filters = ['pandoc-citeproc'] pdoc_args = ['--mathjax', '--smart'] output = pypandoc.convert_file(filename, to='html5', format='md', extra_args=pdoc_args, filters=filters)
请将任何过滤器作为列表传递,而不是作为字符串。
请参阅 pandoc -h 和
官方文档 以了解更多详情。
Pandoc 支持通过 -V 参数进行自定义格式化。要通过
pypandoc 使用它,请使用如下代码:
output = pypandoc.convert_file('demo.md', 'pdf', outputfile='demo.pdf', extra_args=['-V', 'geometry:margin=1.5cm'])
注意:将
-V及其参数在列表中分开很重要,否则 它将无法工作。这个陷阱与subprocess.Popen的工作方式有关。
Pypandoc 使用 Python 日志库 记录消息。 默认情况下,它会将消息发送到控制台,包括 Pandoc 生成的任何消息。 如果需要,可以通过在调用任何函数之前向 pypandoc 日志记录器添加 处理程序来更改此行为。 例如,要静音所有日志记录,请添加一个空处理程序:
import logging logging.getLogger('pypandoc').addHandler(logging.NullHandler())
有时检查系统中可用的 pandoc 版本或 pypandoc 使用的特定 pandoc 二进制文件会很有用。为此,pypandoc 提供了以下实用函数。示例:
print(pypandoc.get_pandoc_version())
print(pypandoc.get_pandoc_path())
print(pypandoc.get_pandoc_formats())
convert_text 功能。不过它的重点是编写和运行 pandoc 过滤器。欢迎贡献。在开启 PR 时,请注意以下准则:
flake8 pypandoc/*.py tests.py 检查。README.md 的贡献者部分。如果已经在列表中,请更新你的贡献内容。请注意,要通过 citeproc 测试,你需要安装 pandoc-citeproc。如果你安装了预构建的 wheel 或 conda 包,它已经包含在内。
setup.py 强制失败,Travis,Dockerfile,PyPI 徽章,Tox,PEP-8,改进文档extra_args 示例convert_* API。pypandoc 的前任维护者_get_pandoc_urls 以安装任意版本以及最新版本的 pandoc。次要:README,Travis,setup.pyPypandoc 使用 MIT 许可证。有关更多详细信息,请参阅 LICENSE。Pandoc 本身使用 GPL2 许可证。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号