Faça os blocos de código Python formatarem seus resultados como tabelas organizacionais
O contexto
Em #+BEGIN_SRCblocos de código cujo idioma é cppou sh, o caractere de tabulação é usado como um delimitador para células ao usar o :results tableargumento de cabeçalho (consulte os exemplos abaixo)
#+begin_src cpp :results replace output table
#include <iostream>
int main() {
std::cout << "a\ta\nbbbbb\tbbbbb" << std::endl;
return 0;
}
#+end_src
#+RESULTS:
| a | a |
| bbbbb | bbbbb |
#+begin_src sh :results replace output table
printf "%s\t%s\n" "a" "a" "bbbbbb" "bbbbbb"
#+end_src
#+RESULTS:
| a | a |
| bbbbbb | bbbbbb |
No entanto, este mesmo comportamento não está presente em pythonblocos de código (veja abaixo)
#+begin_src python :results replace output table
print("a\ta\nbbbbb\tbbbbb")
#+end_src
#+RESULTS:
: a a
: bbbbb bbbbb
A questão
Como posso fazer com que a saída de pythonblocos de código seja exibida como tabelas organizacionais. Não é usar esses argumentos de cabeçalho e fazer a saída conter caracteres de tabulação o suficiente para #+RESULTSser formatado como uma tabela organizacional?
Respostas
Você pode gerar tabelas organizacionais formatadas, retornando uma lista de listas como segue (aviso no: saída de resultados):
#+begin_src python :results replace table
return (('a', 'a'), None, ('bbbbb', 'bbbbb'))
#+end_src
#+RESULTS:
| a | a |
|-------+-------|
| bbbbb | bbbbb |
uma linha Nenhum cria uma linha separadora.
Aqui estão alguns outros exemplos usando :results output
#+BEGIN_SRC python :results output table
print([['Number', 'Number * 10'], None, [1, 10], [2, 20]])
#+END_SRC
#+RESULTS:
| Number | Number * 10 |
|--------+-------------|
| 1 | 10 |
| 2 | 20 |
#+BEGIN_SRC python :results value table
return [['Number', 'Number * 10'], None, [1, 10], [2, 20]]
#+END_SRC
#+RESULTS:
| Number | Number * 10 |
|--------+-------------|
| 1 | 10 |
| 2 | 20 |
Observe que, ao usar :results output, um único printé incluído no #+RESULTSbloco de código.
#+BEGIN_SRC python :results output table
for i in range(5):
print([i, i**10])
#+END_SRC
#+RESULTS:
| 0 | 0 |