使用批处理顺序运行多个python程序“with sys”

时间:2014-07-06 11:36:53

标签: python batch-file batch-processing

我正在使用基于Windows的PC。

我有多个python程序" sys"。我的意思是程序有这些行。

import sys
input_file = sys.argv[1]
output_file = sys.argv[2]

所以我通过运行

来运行这些程序
python program1.py input1 output1

但是,有一系列的python程序,所以只要双击一个文件就可以运行所有这些程序。

如何按顺序运行它们,而不是同时运行?

我尝试过像

这样的事情
start C:\python27\python.exe program1.py input1 output1
start C:\python27\python.exe program2.py input2 output2

但它不起作用..

2 个答案:

答案 0 :(得分:3)

Call主要用于从批处理文件中调用批处理文件或在当前批处理文件中作为子例程运行块。

Start是将任何应用程序作为单独的进程启动的命令,这意味着控制台应用程序可以在单独的命令提示符(控制台)窗口中运行它。即使未使用命令 start ,也始终将批处理文件中执行的GUI应用程序作为单独的进程启动。

运行应用程序会导致停止批处理文件的执行,直到应用程序为大多数应用程序终止自身。 (应用程序本身会导致应用程序具有不同的行为。)但是使用命令 start 启动的控制台或GUI应用程序会立即继续执行批处理文件。

使用start /wait ...可以将控制台或GUI应用程序作为单独的进程启动,并停止批处理文件的执行,直到应用程序终止为止。

start /wait C:\python27\python.exe program1.py input1 output1
start /wait C:\python27\python.exe program2.py input2 output2

在命令提示符窗口中运行start /?时,此命令的帮助将打印到输出窗口中。

["title"]表示可以选择为新的命令提示符窗口设置标题(仅用于启动控制台应用程序)。我在这里提到这一点是因为命令 start 可以在命令行的任何地方解释双引号中的任何字符串也作为窗口标题。因此,如果要启动的应用程序或其参数之一必须用双引号括起来,因为空格字符或路径或文件名中的其中一个字符&()[]{}^=;!'+,`~,最好用双引号显式指定标题字符串在命令 start 后立即作为第一个参数,它甚至可以是""之类的空字符串(最适合GUI应用程序)。

start "Python Task 1" /wait "C:\python27\python.exe" program1.py input1 output1
start "Python Task 2" /wait "C:\python27\python.exe" program2.py input2 output2

答案 1 :(得分:0)

import os

os.system('python' + ' ' + 'python_1.py')

os.system('python' + ' ' + 'python_2.py')

此解决方案本身是python程序。您还可以构造程序名称并将其循环。您还可以在程序名称后添加参数。