使用批处理脚本运行具有不同路径的两个不同的python脚本

时间:2015-10-08 12:26:18

标签: python batch-file

我需要在循环中执行两个python脚本script1.py(path:dir1)和script2.py(path:dir2)。为了运行这两个脚本,我需要给出python路径。之前我曾经手动设置路径并执行脚本。由于我需要在循环中执行脚本,如何创建可以执行一个脚本的批处理文件,并在完成其工作后执行另一个脚本。 我是批处理脚本的新手。 感谢

2 个答案:

答案 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