Home > Software design >  execute os command from python that asks for confirmation
execute os command from python that asks for confirmation

Time:07-29

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 onbjectList:
    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.

CodePudding user response:

Converting to an answer from comment.

Suggestion to a solution, using popen:

import os

onbjectList = []

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

for objectSpecification in onbjectList:
    deleteObject(objectSpecification['id'])
  • Related