简体   繁体   中英

Open .bat file with Python - not working

I have 3 different files, one Python file and two .bat files. They communicate between each other (hopefully).

When I execute the "Process_Videos.bat" by itself (double clicking in the windows explorer) it works fine, but whenever I call it from the Python file it doesnt work at all, just says "press any button to continue..."

I really need to have this structure, calling the "Process_Videos.bat" from a Python file, since I am extracting some web info. The "pythonExecute.bat" just works as a trigger for the entire process.

Also I have tried the "subprocess" approach, but not working either.

The files and respective code:

pythonExecute.bat

python "D:\\tests\\pythonCall.py"

pythonCall.py

import os
os.system('D:\\tests\\3.asc\\Process_Videos_asc.bat')

Process_Videos.bat

@echo off

setlocal EnableDelayedExpansion
set "FolderBaseName=TestName"
set "DropBoxFolder=D:\tests\3.asc\myDropBoxFolder"
set "BaseOutputFolder=D:\tests\3.asc\TEMP"

for %%I in (*.png) do (

    set "slaveName=%%~nI"
    set "slaveName=!slaveName:~6!
    set "OutputFolder=%BaseOutputFolder%_!slaveName!"
    echo !slaveName!   
    md "!OutputFolder!" 2>nul

    for %%J in (*.mp4*) do (

        ffmpeg -i "%%~fJ" -i "%%~fI" -filter_complex overlay "!OutputFolder!\%%~nJ.mp4"

    )

    "C:\Program Files\WinRAR\rar.exe" a -cfg- -ep1 -inul -m5 "%DropBoxFolder%\%FolderBaseName%_!slaveName!" "!slaveName:~6!\*"

    rd /S /Q "!OutputFolder!"

)

pause

You need to:

a) Invoke your batch file within the directory it is in, (eg by changing directory first), and

b) Get rid of the pause at the end of the batch file.

You should also consider replacing the batch file altogether - python can do all of the things that it does much more neatly. The accepted answer to this SO question gives some very good tips.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM