Espellere CD forzatamente Python

Salve gente oggi volevo parlavi del mio vecchio script che espelle cd forzatamente.
Un giorno avevo la necessità di espellere il cd che masterizzai tempo fa.
Essendo che mi si bloccò dentro il cd entrai nel panico.
Entrai in panico perchè sul mio imac del 2009 è tutto in un unico guscio di alluminio.
Nei normali computer  portatili e non si ha accesso a questa specifica premendo con uno spillo una insenatura del lettore cd/dvd.

Come si espelle il cd
Come si espelle il cd

Questa azione comportava l’espulsione meccanica.
Per tale motivo cercai in lungo e in largo nel web.
Provai i comandi Linux che conoscevo già ma nulla.
Cercai una guida che eseguendo un codice sul terminale del Mac mi espelleva il cd.
Conoscevo già il comando per Linux per espelle il cd ed era eject cdrom.
Spero che non mi ricordo male ad ogni modo potete commentare per correggermi. Quindi mi creai un applicativo con una semplice interfaccia grafica con un solo pulsante.
Lo so non ha senso però lo feci così facile apposta.
All’inizio per far si che faccia qualcosa di nuovo ho richiamato l’assistente vocale così mi legge una frase.

 

#!/usr/bin/python
from tkinter import *
import os

def term():
  os.system("&& echo exit status $ && exit 1")
  os.system("drutil tray ejec")
  os.system("drutil eject")
  os.system("drutil eject 0")
  os.system("drutil eject 1")
  os.system("drutil eject 2")
  os.system("drutil eject 3")
  os.system("drutil eject 4")
  
testo="Benvenuto! Questo e il programma scritto ed ideato da : Paolo Lo Bello, Grazie per averlo utilizzato!"
f=Tk()
f.title("Eject Cdrom!")
f.geometry("%dx%d%+d%+d" % (340,200,599, 417))
Label(f,text="Eject CD/DVD", justify = LEFT).pack()
Pulsante=Button(f,text="Forza CD/DVD",command=term).pack()
os.system("say "+testo)
Label(f,text = "Prova a premere il tasto espulsione nella tastiera").pack()
Label(f,text = "se non il tasto premi questo pulsante", justify = LEFT).pack()
Label(f,text = "per forzare l'uscita del CD/DVD dal vano disco.", justify = LEFT).pack()
Label(f,text = "Premi il tasto eject.", justify = LEFT).pack()
f.mainloop()

Il programma si può modificare per farlo funzionare su Linux semplicemente eliminando drutil oppure metterlo in coda.

Spero che vi sia utile!
Se avete migliorie al codice e volevo condividere nei commenti siete i benvenuti.
Buon proseguimento di giornata 🙂