我使用以下代码:
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()
.