如何使用ipynb-py-convert修复"Extensions must be .ipynb and .py or vice versa"?



我使用以下代码:

filename = r'C:/Users/Automated Analysis.ipynb'
dest = r'C:/Users/Automated Analysis.py'
os.system("ipynb-py-convert %s %s" % (filename, dest))

但是它给了我这个错误:

raise(Exception('Extensions must be .ipynb and .py or vice versa'))
Exception: Extensions must be .ipynb and .py or vice versa

我不确定如何使我的代码以上工作。

这是因为你的文件名有空格。

您的os.system命令变为:

ipynb-py-convert C:/Users/Automated Analysis.ipynb C:/Users/Automated Analysis.py

…如你所见,现在有4个输入。直接在命令行上运行该命令将产生相同的Exception消息。它正在尝试将C:/Users/Automated转化为Analysis.ipynb

把文件名用引号括起来:

os.system("ipynb-py-convert '%s' '%s'" % (filename, dest))

或者您可以使用subprocess.run:

import subprocess
filename = r'C:/Users/Automated Analysis.ipynb'
dest = r'C:/Users/Automated Analysis.py'
subprocess.run(['ipynb-py-convert', filename, dest])

参见子进程相对于操作系统的优势。os.system().

最新更新