我需要在循环中执行两个python脚本script1.py(path:dir1)和script2.py(path:dir2)。为了运行这两个脚本,我需要给出python路径。之前我曾经手动设置路径并执行脚本。由于我需要在循环中执行脚本,如何创建可以执行一个脚本的批处理文件,并在完成其工作后执行另一个脚本。 我是批处理脚本的新手。 感谢
答案 0 :(得分:0)
您可以为此创建一个shell脚本(运行10次):
#!/bin/bash
for i in `seq 0 10` ;
do
echo "Running Script 1"
python Script1.py <path as argument>;
echo "script 1 completed"
echo "Running Script 2"
python Script2.py <path as argument>;
echo "script 2 completed"
done
请澄清您的需求是否还有其他原因。
答案 1 :(得分:0)
您可以使用调用subprocess.call()
方法的python脚本。
它需要一个包含要调用的命令的字符串列表
然后使用try
循环来检查第一个脚本是否正确执行,如果是,则调用下一个(也可选择try
)。
#batch.py
import subprocess
try:
subprocess.call(['python3','path/to/script1.py'])
except Exception as e:
print('Error: ', e) #alternatively add your logger here
sys.exit(1)
try:
subprocess.call(['python3','path/to/script2.py'])
except Exception as e:
print('Error: ', e) #alternatively add your logger here
sys.exit(1)
然后,您将使用CLI中的python3 path/to/batch.py
执行此操作。
请注意,如果您正在使用python 2.7(除非绝对必要,否则您不应该这样做),您必须更改代码以调用python
而不是python3
。
有关subprocess
模块的更多参考和信息,请查看python文档和answer