I have a batch file, which I'm trying to run with python and it doesn't work for some reason.The batch file specifies path, then executes a certain command, like this:
Path= %systemdrive%\somefolder\secondfolder\Step1setupEP.exe ADDLOCAL="tp"Then python script should this file and then does some other things, which are irrelevant for the current some other similar files.The problem is batch files aren't been executed.Below is my python script
def func1(): os.popen(r"%systemdrive%\s1.bat")def func1(): os.popen(r"%systemdrive%\s2.bat")list=[func1(),func2()]for i in list: t1=threading.Thread(target=i, args=(1,)) t1.start() t1.join()If I substitute the batch execution with some random loop, like
for i in range(0,60): print iEverything works perfectlyHelp anyone?
- 2Don't overwrite
PATH. Update it insteadset "PATH=%systemdrive%\somefolder\secondfolder\Step1;%PATH%"dcg– dcg2017-04-20 13:21:31 +00:00CommentedApr 20, 2017 at 13:21
2 Answers2
.Thread should receive a callable object, you are passingfunc1() which is the result of the objectafter being called.
You basically needmy_list = [func1, func2]
In your case, the batch files run only once on script start, not during yourfor loop.
3 Comments
for loop does run 60 times. Pass them a callable! Passfunc notfunc().You should try calling the batch file instead of opening it. Try something like
call("PathToFile/File.bat")Comments
Explore related questions
See similar questions with these tags.

