execute os command from python that asks for confirmation

Question:

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.

Asked By: Dirk Horsten

||

Answers:

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'])
Answered By: user56700
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.