python - 使用 bash for 循环从位于子目录中的单独文件运行 Python doctest

标签 python bash shell for-loop doctest

我正在测试大量学生的Python项目。我在一个名为 mydoctest.rst 的单独文件中创建了一个 doctest。

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

关于python - 使用 bash for 循环从位于子目录中的单独文件运行 Python doctest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42711582/

相关文章:

python - 如何动态更改 'Text Markup'中的字体大小?

python - 保存子模型时,在 Django 抽象父模型上启动后保存

python - Python 多处理模块中 apply() 和 apply_async() 的区别

linux - 计算每个文件夹的平均文件数

linux - 将文件大小从 MB 转换为字节并使用 Bash 进行比较

bash - 使用 stty -icanon 时如何读取返回值

c - C 中的 pipe、fork 和 shell 命令

bash - 使用 awk 根据 Type 列出报告

linux - 如何在 bash 中将多个结果从一个命令发送到另一个命令?

Python 检查整数输入