使用 bash for 循环到 运行 Python 来自位于子目录中的单独文件的 doctest
Using bash for loop to run Python doctest from a separate file located in subdirectories
我正在测试大量学生的 python 项目。我在一个单独的文件中创建了一个 doctest,我称之为 mydoctest.rst
。
doctest 的第一行导入学生项目的模块:
from project3 import functionname
当我从与学生项目相同的目录调用它时,doctest 工作正常:
studentA$ python3 -m doctest mydoctest.rst
我想做的是使用 bash for 循环命令对每个子目录执行上述操作,因此我尝试执行以下操作。
parentdirectory$ for d in *; do python3 -m doctest "$d/"mydoctest.rst; done
但随后它会尝试在当前目录而不是每个子目录中查找模块。
有没有办法在执行 do python3 -m doctest
之前先 cd 进入每个子目录?
我目前的解决方法(我不满意)是:
对于 * 中的 d;做 cd“$d”; python3 -m doctest mydoctest.rst;裁谈会..;完成
我建议使用子 shell (...)
和 cd
:
for d in *; do (cd "$d" && python3 -m doctest mydoctest.rst); done
这应该有效
for d in *; do (cd "$d" ; python3 -m doctest mydoctest.rst); done
我正在测试大量学生的 python 项目。我在一个单独的文件中创建了一个 doctest,我称之为 mydoctest.rst
。
doctest 的第一行导入学生项目的模块:
from project3 import functionname
当我从与学生项目相同的目录调用它时,doctest 工作正常:
studentA$ python3 -m doctest mydoctest.rst
我想做的是使用 bash for 循环命令对每个子目录执行上述操作,因此我尝试执行以下操作。
parentdirectory$ for d in *; do python3 -m doctest "$d/"mydoctest.rst; done
但随后它会尝试在当前目录而不是每个子目录中查找模块。
有没有办法在执行 do python3 -m doctest
之前先 cd 进入每个子目录?
我目前的解决方法(我不满意)是: 对于 * 中的 d;做 cd“$d”; python3 -m doctest mydoctest.rst;裁谈会..;完成
我建议使用子 shell (...)
和 cd
:
for d in *; do (cd "$d" && python3 -m doctest mydoctest.rst); done
这应该有效
for d in *; do (cd "$d" ; python3 -m doctest mydoctest.rst); done