如何在python的differents文件夹中运行几个脚本

时间:2019-09-15 15:36:12

标签: python subprocess

我必须运行许多纸质脚本,并且我想使其自动运行。我有几个文件夹(P1,P2,...,PN),我有一个脚本(test1,test2,... testN),我需要运行所有这些文件,但是我自己一个人做,所以我浪费了很多我没有的时间!

enter image description here

enter image description here

我尝试了子流程:

enter image description here

其中P1_T1是:

for i in range(5):
    x = i+2*i

    print(x)

而P1_T2是:

for i in range(5):
    x = i+3*i
    print(x)

但是没有用。

2 个答案:

答案 0 :(得分:1)

如果要遍历一组目录,建议使用os.walk。此实现应尝试在根目录中的每个文件上运行POpen'python [filename]':

import os
import importlib.util


path = "C:\\SO\\testfolder" # <--- replace this with the path to the folder containing all of your p1, p2, p3, p4 folders.

for root, subdirs, files in os.walk(path):
    for file in files:
        file_path = os.path.join(root, file)
        filename, file_extension = os.path.splitext(file_path)
        if file_extension == ".py":
            print("Now Executing: " + filename + "-----------")
            spec = importlib.util.spec_from_file_location(file, file_path)
            module = importlib.util.module_from_spec(spec)
            spec.loader.exec_module(module)

编辑:添加了使用导入库+ exec_module来运行python文件的功能。从here引用的导入方法。

答案 1 :(得分:0)

Popen需要参数列表,所以

import subprocess
from subprocess import Popen

Popen(['python', 'p1/P1_T1.py'])
time.sleep(1)
Popen(['python','p2/P2_T1.py'])

这对您有用吗?有一个不错的教程-Python 3 Subprocess Examples