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盘, 还找到获取第一个光驱的盘符的办法