Feb 27

问题的由来: 刻录了一百多张光盘, 记录了每一张光盘的目录数(光盘根目录下的一层子目录), 发现光盘目录数总和大于源数据目录数. 应该是 一个目录只能刻录在一张光盘上, 所有光盘下目录总数等于源数据目录总数, 不多不少

于是得校验到底是哪些光盘里的目录是重复了. 光盘有相应的标签...

如果是一台机依次读取一百来个光盘,那还真够呛的. 所以,得分开来读,得到一些原始数据再合并对比. 标识光盘,当然是其标签, 已经确定了,标签不存在重复. 所以,我想到用字典来处理.

#!/usr/bin/env python3
#coding=gbk
import os
import ctypes
import win32api

def get_write():
    cdrom = "E:"
    k = win32api.GetVolumeInformation(cdrom)[0]
    dirs = os.listdir(cdrom)
    ctypes.windll.WINMM.mciSendStringW(u"set cdaudio door open", None, 0, None)
    print("光驱已经弹出, 请换光盘继续")
    return (k, dirs)

mydict = {}
ans = input("装光盘放入光驱后, 按回车键继续\n>")
while ans != 'q':
    k, v = get_write()
    mydict[k] = v
    ans = input("装光盘放入光驱后, 按回车键继续,输入q退出\n>")

for k, v in mydict.items():
    print(k, v)

字典的键是光盘标签, 键值是目录列表

cdrom 暂时定为E盘, 还找到获取第一个光驱的盘符的办法