1.11M Members

Handling CD Drives from python

 
0
 

Hey,

Just a simple question really, i was looking through the documentation for python and i couldn't find anything that did basic cd drive things, like ejecting it and stuff. The one module i did find 'cd' was only compatible on IRIX systems.

After failing miserably on google i was just wondering if anyone happened to know of a command or module that opens the cd drive, and reads from it, seems simple but meh..

I'm hoping theres something built in that does it.

Thanks,
a1eio

 
0
 

You could use os.popen if you are on unix like operating systems to run shell commands like nautilus-cd-burner or anything you like.

 
0
 

yea, i forgot to mention, i'm trying to do this on a windows machine.

the os.popen idea did occur to me, but then i got stuck again.. :p i don't know the dos command for opening the cd drive.

thanks
a1eio

 
0
 

yea, i forgot to mention, i'm trying to do this on a windows machine.

the os.popen idea did occur to me, but then i got stuck again.. :p i don't know the dos command for opening the cd drive.

thanks
a1eio

if you have pygame, you can use its inbuilt cdrom commands

import pygame.cdrom as cdrom
cdrom.init()
cd = cdrom.CD(0) # 0 = first cdrom device
cd.init()
cd.eject()
cd.quit()
cdrom.quit()

or here's something i found GNU CD Input and Control Library . you can try it out.

 
0
 

Is there any way (non platform-depended) to close the tray using python 3.

I couldn't find any function in the api of pygame.cdrom module. The best result so far is for Windows.

http://code.activestate.com/recipes/180919/

 
0
 

on windows use os.system("YOUR EJECT COMMAND HERE")

 
0
 

Here is one that works on Windows machines with Python3 ...

# open and close the CD tray door (Windows OS)
# tested with Python 3.1

import ctypes
import time

# open the CD tray door
ctypes.windll.winmm.mciSendStringW("set cdaudio door open",
    None, 0, None)

# wait 3.5 seconds
time.sleep(3.5)

# close the CD tray (manual closing only with some notebooks)
ctypes.windll.winmm.mciSendStringW("set cdaudio door closed",
    None, 0, None)
Isn't it about time forums rewarded their contributors?

Earn rewards points for helping others. Gain kudos. Cash out. Get better answers yourself.

It's as simple as contributing editorial or replying to discussions labeled or OP Kudos

You
This article has been dead for over six months: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article