You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Jupyter Notebook转换为无# In[]注释的干净Python文件?

解决Jupyter Notebook转Python脚本时保留# In[]注释的问题

我之前也碰到过这个情况!你用--no-prompt参数没生效,大概率是因为部分旧版本的nbconvert对这个参数的处理不够彻底,或者需要换个方式来清除这些烦人的注释。下面给你几个实用的解决办法:

方法1:升级nbconvert到最新版本

旧版本的--no-prompt可能没有完全移除# In[]这类注释,升级到最新版后再执行原命令通常就能解决问题:

pip install --upgrade nbconvert
jupyter nbconvert --to script --no-prompt notebook.ipynb

方法2:用sed命令后处理生成的脚本

如果不想升级依赖,转换完成后可以直接用sed命令批量删除所有# In[xxx]格式的行:

# 先执行转换
jupyter nbconvert --to script --no-prompt notebook.ipynb
# 清除注释行
sed -i '/# In\[[0-9]*\]/d' notebook.py

注:Windows系统如果没有sed,可以用PowerShell的替代命令,或者直接手动删除这些行,也可以用Python脚本批量处理。

方法3:使用自定义nbconvert模板(适合批量处理场景)

如果需要频繁转换干净的脚本,可以创建一个自定义模板来彻底去掉这些注释:

  1. 创建一个名为clean_script.tpl的模板文件,内容如下:
{%- extends 'script.tpl' -%}
{% block in_prompt %}{% endblock in_prompt %}
{% block input %}
{{ cell.source | ipython2py }}
{% endblock input %}
  1. 用这个模板执行转换命令:
jupyter nbconvert --to script --template clean_script.tpl notebook.ipynb

执行以上任意一种方法后,生成的Python脚本就会是你期望的干净版本:

#!/usr/bin/env python
# coding: utf-8
print("Hello World")
print("Hello Jupyter")

内容的提问来源于stack exchange,提问作者naman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:53:39