簡體   English   中英

如何使用 Bash 在 Jupyter Notebook 中打印單元格的內容

[英]How to print contents of cells in Jupyter Notebook with Bash

我有一個 .ipynb 文件,想在不運行本地 jupyter 筆記本服務器的情況下查看內容。

我嘗試使用cat my-file.ipynb但這會輸出很多難以閱讀的 json。 就像是:

  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [.............],
   "source": [
    "import os\n",
    "import sys\n",
    "from pyspark.sql import SparkSession\n",
    "import pyspark.sql.functions as F\n",
    ...
   ]
  }

如果我之前運行過筆記本,有時這個outputs值會很長。 我想要的只是source的價值。 我無權訪問jq

How can I print the contents of all source blocks with just grep , sed , awk , or some other simple bash command?

埃德可以做到這一點。

#!/bin/sh

cp my-file.ipynb stack
cat >> my-file.ed << EOF
/source/
+1
.,\$W source.txt
q
EOF

cat >> source.ed << EOF
$
-1
.,\$d
wq
EOF

ed -s stack < my-file.ed
ed -s source.txt < source.ed

rm -v ./my-file.ed
rm -v ./source.ed
rm -v ./stack

第一個腳本向下搜索“源”字,然后再向下搜索,然后將它和文件末尾之間的所有內容寫入一個單獨的文件。

第二個腳本首先移動到文件末尾,然后向上移動 1,然后刪除該行和文件末尾之間的所有內容。 我這樣做是為了使用相對行編號,因此無論“源”鍵有多長,它都會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM