📅  最后修改于: 2023-12-03 15:15:52.580000             🧑  作者: Mango
如果您经常使用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程序对于你在日常工作中进行演示或报告时有所帮助。