从标记文件和脚本创建r标记文件。
catren的Python项目详细描述
python包catren
使用catren
可以在
- 您的终端或
- 您最喜欢的python环境(例如PyCharm或Visual Studio Code)。
python包由4个函数组成:
catrmd
,它允许输入文件输出R Markdown(rmd)文件。render
,它调用rmarkdown::render
来创建各种输出文件(例如html文档)。catren
,它结合了catrmd和render的功能。rmdtor
,它使用knitr::purl
将rmd转换为r脚本。
以上所有函数都适用于Python和R代码,除了跳过Python块的rmdtor
要运行包含R和Python代码的Rmd文件,需要reticulate
R包
以r
(render
和rmdtor
)开头的函数依赖于rmarkdown
和knitr
,
r由Yihui Xie编写的包。
除了python之外,catrmd
函数没有依赖关系,
所有其他函数(render
、catren
和rmdtor
)都需要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---
来自rmarkdown
R包的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/")
您还可以使用reticulate
r包在r环境中运行catren
函数。
缺少依赖关系?
如果您使用Anaconda安装了python和r,那么您应该已经拥有了所有依赖项(python
和r-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))]