Python 3.x 有没有办法用python检查cd驱动器上是否有cd

Python 3.x 有没有办法用python检查cd驱动器上是否有cd,python-3.x,raspberry-pi,raspbian,cd-rom,Python 3.x,Raspberry Pi,Raspbian,Cd Rom,我正在尝试制作一个程序,检查何时插入一张名为“PlayMe”的cd,然后让程序播放其中的一首曲目。这台电脑是一台带有raspbian的raspberry pi4 我尝试过扫描文件树出现的时间,它只工作一次,但当光盘被物理移除时,它仍然有树。我还尝试过使用pygame的cdrom方法获取\u empty和获取\u name。我不知道有什么更好的方法可以做到这一点 import pygame pygame.init() print(pygame.cdrom.get_count()) pygam

我正在尝试制作一个程序,检查何时插入一张名为“PlayMe”的cd,然后让程序播放其中的一首曲目。这台电脑是一台带有raspbian的raspberry pi4

我尝试过扫描文件树出现的时间,它只工作一次,但当光盘被物理移除时,它仍然有树。我还尝试过使用pygame的cdrom方法
获取\u empty
获取\u name
。我不知道有什么更好的方法可以做到这一点

import pygame

pygame.init()

print(pygame.cdrom.get_count())

pygame.cdrom.get_empty(0)
当它运行时,我从
cdrom获得输出。get_count
为1,但get empty给出:

“AttributeError:模块'pygame.cdrom'没有'get_empty'属性”


我没有办法测试这个,因为我的电脑没有cd驱动器,但是像这样的东西怎么样?其思想是,您不仅需要创建pygame
CD
对象,还需要在pygame可用之前为其调用特定于pygame的
init
函数


不确定这是否有帮助,但get_empty是pygame.cdrom.CD对象的函数,而不是pygame.cdrom模块的直接函数。我还使用pygame.cdrom.CD.get_empty(0)运行了相同的代码,并且两次迭代都没有zero。谢谢much@panther001没问题,很高兴有帮助!
import pygame

pygame.init()#should also automatically initialize the pygame cdrom module
num_drives = pygame.cdrom.get_count()
if num_drives == 0:
    raise ValueError("Computer does not have a CD-drive")
drive = pygame.cdrom.CD(0)#first drive, probably default?
drive.init()
if not drive.get_empty():
    print("A CD is in this drive")
else:
    print("No CD is in this drive")
drive.quit()