如何在rmarkdown块中导入和运行python文件?

时间:2019-11-18 21:32:14

标签: python r r-markdown

我有一个r markdown文档和一个名为sim1.py的python脚本。我想将python代码导入一个块中。在某些情况下,我希望它运行,而在其他情况下,我只希望粘贴代码。

到目前为止,我已经尝试通过以下方式使用child块选项:

```{python, child=here::here("simulations", "sim1.py"), eval=FALSE}
```

运行上面的代码时,我没有收到任何错误,但是没有输出。

当我运行以下代码时

```{python, child=here::here("simulations", "sim1.py"), eval=TRUE}
```

我得到一个错误:

You can't use `macro parameter character #' in horizontal mode.
l.1938 #
        plt.savefig("test.pdf") 

错误指的是注释行。

关于我如何都能做到的任何想法:

  • 仅显示代码
  • 运行代码并同时显示代码和输出

编辑:我正在尝试的另一种选择是:

```{python sim-1, code=cat(readLines(sim_folder), sep = '\n'), eval=FALSE}
```

旨在读取文件的内容,将该内容粘贴到块的主体中​​,并使用python引擎对其进行评估。尽管在这种情况下,使用eval = FALSE它将仅将文件内容显示为有效的python代码。这不会产生错误,但是也不会显示任何内容。

1 个答案:

答案 0 :(得分:0)

我差点就吃了!正确的解决方案在所有位置的文档中:https://yihui.org/knitr/options/#code-chunk

```{python sim-1, code=readLines(sim_folder), eval=FALSE}
```