我必须运行许多纸质脚本,并且我想使其自动运行。我有几个文件夹(P1,P2,...,PN),我有一个脚本(test1,test2,... testN),我需要运行所有这些文件,但是我自己一个人做,所以我浪费了很多我没有的时间!
我尝试了子流程:
其中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)
但是没有用。
答案 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