【发布时间】:2021-04-18 01:56:29
【问题描述】:
假设我有两个 python 脚本 methods.py 和 driver.py。
methods.py 定义了所有方法,driver.py 在我运行它时完成了所需的工作。
假设我在包含两个文件driver.py 和methods.py 的主目录中,并且我在主目录中有n 子目录,名为subdir1,subdir2,...,subdirn .所有这些子目录都有作为driver.py 输入的文件。
我要做的是在所有这些子目录中运行 driver.py 并从中获取我的输出,而不将 driver.py 写入磁盘。
我应该怎么做? 目前,我正在使用 subprocess 模块来
- 将 driver.py 和 methods.py 复制到子目录中。
- 运行它们。
复制部分很简单:
import subprocess
for i in range(n):
cmd = "cp methods.py driver.py subdir"+str(i)
p = subprocess.Popen(cmd, shell=True)
p.wait()
#once every subdirectory has driver.py and methods.py, start running these codes
for i in range(n):
cmd = "cd subdir" + str(i) +" && python driver.py"
p = subprocess.Popen(cmd, shell=True)
p.wait()
有没有办法在不占用磁盘空间的情况下完成上述操作?
【问题讨论】:
-
为什么不修改 driver.py 以接受目录路径?这样,您可以遍历子目录并执行
python driver.py /path/to/subdir{i}。您可能还需要确保 driver.py 代码可以在任何输入目录中运行。 -
@GinoMempin,哦让它接受整个目录作为输入?我实际上并没有做过这样的事情,但我可以找到一些东西来学习如何做到这一点。谢谢!
标签: python terminal subprocess