[Tutor] Reading the CDROM in Linux
Terry Carroll
carroll at tjc.com
Sat Nov 6 07:55:16 CET 2010
On Fri, 5 Nov 2010, Terry Carroll wrote:
> Aha, this looks like it will work; I was starting to think along these lines;
> I was thinking of reading the output of df, but this is cleaner.
Just to close this out, here's what's working for me. It will need to be
prettied up, and the "/media/" parameterized, but it's my proof of concept
that lets me know how to solve my problem:
#########################################################
import subprocess, os
def getvolid(mountpoint):
p = subprocess.Popen(["volname", mountpoint],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(response, errmsg) = p.communicate()
volid=response.rstrip()
errmsg = errmsg.rstrip()
if len(response)==0:
volid=None
return (volid, errmsg)
# Test it
things_to_try = ["/dev/sr0", # VBOXADDITIONS_3.2.6_63112
"/dev/cdrom1", # symlink to sr0
"/dev/sr1", # MP_04_074
"/dev/cdrom", # symlink to sr1
"/dev/sr2"] # no such mount point, return an error
for thing in things_to_try:
volid, error = getvolid(thing)
print "mount point=%s; volid=%s; errormsg=%s" % (thing, volid, error)
# Try the os.walk:
(volid, errmsg) = getvolid("/dev/sr0")
for (r, d, f) in os.walk("/media/"+volid):
print (r, d, f)
#########################################################
More information about the Tutor
mailing list