Skip to content
Advertisement

execute os command from python that asks for confirmation

Using python import os and os.system("create-object "+ more-specifications), I created a few hundreds of objects, which I now need to delete. I can list the objects created, including their unique id.

To delete just one of them, on the command line, I issue

delete-object --id cfa2d1417633

which will ask for confirmation with

Are you sure you want to delete that object (y or n)?> 

to which I then respont with y.

I can generate a list of the id’s to delete, but I can’t programatically delete them because I don’t know how to respond. This, for instance won’t work:

for objectSpecification in objectList:
    os.system("delete-object --id "+ objectSpecification["id"])
    os.system('n')

The delete will not happen and te ‘n’ causes an error 'n' is not recognized as an internal or external command, operable program or batch file.

Advertisement

Answer

Converting to an answer from comment.

Suggestion to a solution, using popen:

import os

objectList = []

def deleteObject(objid):
    with os.popen(f"delete-object --id {objid}", "w") as p:
        p.write("yn")

for objectSpecification in objectList:
    deleteObject(objectSpecification['id'])
Advertisement