Joh*_*ton 10 emacs literate-programming org-mode
我开始使用org-mode而且我想做的事情似乎应该是可能的,但是我很难搞清楚.
让我来描述一下这个场景:我想要在远程服务器上执行一些SQL代码.我目前有一个python脚本,它将SQL代码作为字符串,并为我这样做.没有org-mode,我的工作流程就是从这样的文件开始:
echo "SELECT name, grade FROM students" >> basic_query.sql
Run Code Online (Sandbox Code Playgroud)
然后我跑了:
$ python run_query.py basic_query.sql
Run Code Online (Sandbox Code Playgroud)
要做到这一点,在org-mode设置中,我可以为SQL创建一个代码块:
#+NAME: basic_query
#+BEGIN_SRC SQL
SELECT name, grade FROM students
#+END_SRC
Run Code Online (Sandbox Code Playgroud)
然后我有一个python调用函数的代码块:
#+BEGIN_SRC python :export results
import sql_helper
query_status = sql_helper.run_query(<<basic_query>>)
#+END_SRC
Run Code Online (Sandbox Code Playgroud)
我可以用它来创建一个表,进一步处理,绘图等.注意<< >>事情是不对的,显然---这只是滥用符号表示我正在尝试做什么.
如果您已设置emacs/org-mode以启用python代码((python . t)in org-babel-do-load-languages),那么您几乎就在那里,我将您的示例更改为
#+NAME: basic_query
#+BEGIN_SRC SQL
SELECT name, grade FROM students
#+END_SRC
#+BEGIN_SRC python :export results :noweb yes :tangle yes
import sql_helper
query = """
<<basic_query>>
"""
query_status = sql_helper.run_query(query)
#+END_SRC
Run Code Online (Sandbox Code Playgroud)
我的python有点生锈,但至少如果我纠结这个
import sql_helper
query = """
SELECT name, grade FROM students
"""
query_status = sql_helper.run_query(query)
Run Code Online (Sandbox Code Playgroud)
python不再抱怨语法,但关于缺少的模块sql_helper ...
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |