📜  ipnyb 到 ppt - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:15:52.580000             🧑  作者: Mango

将Jupyter Notebook转换为PPT的Shell-Bash程序

如果您经常使用Jupyter Notebook来撰写报告或演示文稿,您可能会希望将您的Notebook转换为演示文稿的形式。这就是我们今天要介绍的东西:将Jupyter Notebook转换为PPT的Shell-Bash程序。

在这个程序中,我们将使用Python中的nbconvert工具将Notebook转换为PPT。在这个程序中,您将需要提供Notebook的路径、输出路径以及输出文件名。

那么,让我们来看看Shell-Bash程序的代码吧!

#!/bin/bash

# 使用说明
usage() {
  echo "Usage: $0 [-i notebook] [-o output_path] [-f output_filename]"
  echo "Example: $0 -i ./notebook.ipynb -o ./output_dir -f output"
  echo "Options:"
  echo "  -i  input notebook file path"
  echo "  -o  output path"
  echo "  -f  output file name (without extension)"
  exit 1
}

# 解析参数
while getopts ":i:o:f:" opt; do
  case $opt in
    i) input_path="$OPTARG"
    ;;
    o) output_path="$OPTARG"
    ;;
    f) filename="$OPTARG"
    ;;
    \?) echo "Invalid option -$OPTARG" >&2
        usage
        ;;
    :) echo "Option -$OPTARG requires an argument." >&2
       usage
       ;;
  esac
done

# 检查参数是否符合要求
if [ -z "$input_path" ] || [ ! -f "$input_path" ]; then
  echo "Invalid input notebook file path: $input_path" >&2
  usage
fi

if [ -z "$output_path" ] || [ ! -d "$output_path" ]; then
  echo "Invalid output path: $output_path" >&2
  usage
fi

if [ -z "$filename" ]; then
  echo "Output file name is required" >&2
  usage
fi

# 将Notebook转换为HTML
jupyter nbconvert --to slides "$input_path" --output-dir="$output_path" --output="$filename"

# 将HTML转换为PPT
cd "$output_path"
libreoffice --headless --convert-to pptx "$filename.html"

# 删除中间文件
rm "$filename.html"

echo "PPT generated: $output_path/$filename.pptx"

在上面的代码中,我们首先定义了一个使用说明的函数,然后使用getopts解析输入参数。我们检查这些参数是否符合我们的要求,然后使用nbconvert将Notebook转换为HTML文件。最后,我们使用LibreOffice将HTML文件转换为PPT文件,并删除HTML文件。程序运行结束后,我们打印出生成的PPT文件的路径。

希望这个Shell-Bash程序对于你在日常工作中进行演示或报告时有所帮助。