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 pandoc
sudo yum install pandoc
sudo pacman -S pandoc
brew install pandoc pandoc-citeproc Caskroom/cask/mactex
cabal-install pandoc
pkg 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辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作 问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好 者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能 服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从 内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号