我在 Linux 环境中有以下文件夹结构:
|-- Fixed_Zip
| |-- ipython_notebooks
| | |-- notebook editor for compute_0anXhGEj.ipynb
| | |-- notebook editor for compute_aucScores.ipynb
| | |-- notebook editor for compute_nG27bM3w.ipynb
| | |-- notebook editor for compute_test_scored_scikit1.ipynb
如您所见,我的文件名带有空格。如何循环思考Fixed_Zip
文件夹中的所有子目录,并执行命令:
jupytext --to py {file}
?
另一件事,我正在从 groovy 文件执行命令,所以我想有一些语法需要调整。我能够在我的私人环境中运行以下命令并且它正在工作:
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in `find . -name '*.ipynb' -type f`; do
jupytext --to py "$i"
done
IFS=$SAVEIFS
但是,当我在 groovy 文件中执行相同操作时:
sh '''
SAVEIFS=$IFS
IFS=$(echo -en "\\n\\b")
for i in `find . -name '*.ipynb' -type f`; do
jupytext --to py "$i"
done
IFS=$SAVEIFS
'''
我收到以下错误:
raise InconsistentPath(
jupytext.paired_paths.InconsistentPath: './ipytho' is not a notebook.
答案1
“带空格的文件名”需要find
和xargs
。阅读man find xargs
并做类似的事情
find Fixed_Zip -type f -name '*.ipynb' -print0 | \
xargs -0 -r -n 1 jupytext --to py