从标记文件和脚本创建r标记文件。

catren的Python项目详细描述


python包catren

使用catren可以在

python包由4个函数组成:

  • catrmd,它允许输入文件输出R Markdown(rmd)文件。
  • render,它调用rmarkdown::render来创建各种输出文件(例如html文档)。
  • catren,它结合了catrmd和render的功能。
  • rmdtor,它使用knitr::purl将rmd转换为r脚本。

以上所有函数都适用于PythonR代码,除了跳过Python块的rmdtor

要运行包含R和Python代码的Rmd文件,需要reticulateR包

rrenderrmdtor)开头的函数依赖于rmarkdownknitr, r由Yihui Xie编写的包。 除了python之外,catrmd函数没有依赖关系, 所有其他函数(rendercatrenrmdtor)都需要r。

安装

pip install catren

或者克隆repo,例如git clone https://github.com/marskar/catren,并在本地使用,例如python catren.py header.yml README.md plot.py notes.txt,或者使用setup.py安装,例如python setup.py install

基本用途:端子

在终端

中用catrmd创建R标记文件

catrmd函数的工作方式类似于nbuild。提供所有源文件作为参数,例如

catrmd header.yml intro.md letters.R notes.txt plot.py

catrmd的默认输出文件名是cat.Rmd默认情况下,输入和输出文件位于当前目录('./'

您可以为未呈现的rmd(-u)提供更具描述性的文件名,并设置不同的输入(-i)和输出(-o)文件路径:

catrmd header.yml intro.md letters.R notes.txt plot.py --unrendered raw.Rmd --output_path rmarkdown/
# Or
catrmd header.yml intro.md letters.R notes.txt plot.py -u raw.Rmd -o rmarkdown/

如果希望以后使用RStudio输出r笔记本,则yaml头应包含html_notebook作为输出类型(提示:按ctrl/cmd+shift+k)。

---title:"Untitled"output:html_notebook---

来自rmarkdownR包的render函数允许您使用output_format参数动态指定输出类型

基本用法:python环境

# You can import any or all of the functions from the catren package.# You can also import each function individuallyfromcatrenimportcatrmdfromcatrenimportrenderfromcatrenimportcatrenfromcatrenimportrmdtor# The above imports all 4 functions# This can also be done with either of the two lines below.fromcatrenimportnbuild,nbexec,nbless,catrmdfromcatrenimport*# Another alternative is to import the package and use it as a namespace.importcatrenascr# Use individually# To make an Rmd file, use catrmdcatrmd(["header.yml","intro.md","letters.R","plot.py","notes.txt"],output_path="rmarkdown/")# catrmd will also work with Python scripts.catrmd(["header.yml","README.md","plot.py","notes.txt"],output_path="notebooks/")# Or to run both catrmd and render at once, use catrencatren["README.md","plot.py","notes.txt"],nbexec_path="notebooks/")# Use nbless as a namespacecr.catrmd(["header.yml","intro.md","letters.R","plot.py","notes.txt"],output_path="rmarkdown/")

您还可以使用reticulater包在r环境中运行catren函数。

缺少依赖关系?

如果您使用Anaconda安装了python和r,那么您应该已经拥有了所有依赖项(pythonr-essentials)。

如果没有,或者安装了Miniconda,请运行

conda install -yc r r-essentials

键入的文件名太多?

可以使用ls命令将当前目录中的所有相关名称分配给变量,并将此变量作为参数传递给nbconvert.py

为了保持顺序并区分应该合并到笔记本中的文件,我建议用零填充您的文件名(例如01_intro.md,02_figure1.py)

请考虑以下示例:

touch {01..09}.py
name_list=`ls 0*.py`
python catrmd.py `echo$name_list`

在python环境中,我建议os.listdir获取所有文件的列表:

fromosimportlistdirfromos.pathimportisfile,joinonlyfiles=[fforfinlistdir(mypath)ifisfile(join(mypath,f))]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否存在这样一种场景:Java7的Hashmap实现优于Java8的实现   java如何打印这些完整的数组?   java BuildException:未能执行aapt   java如何使用类。未知类型的集合返回的cast()   java准备语句返回错误的值   webview 安卓中的java显示身份验证对话框   java如何重命名列名JPA Hibernate   java查询从特定用户和特定时间段的Oracle表(通过比较原始表和备份表)中选择修改的行   java Youtube视频仅在三星S6设备上加载时自动暂停   未调用java RecyclerView getItemViewType   使用JSch setCommand执行带有源选项的java Shell ping命令时失败   java Hibernate:无法删除|删除分离的实例   Java Spring@MappedSuperclass字段作为子类中的@Id字段   java Android:确定单击了哪个按钮,因为该按钮未在xml中定义   如何计算java阵列内存使用率   使用Java查找按字母顺序排列的第一个字符串   javascript注销功能刷新页面,但页面仍已登录   当接口作为参数提供时,java依赖项注入不起作用   java中带原语的字符串扭曲