我需要比较 XP 机器上的两个文件夹。
这是一个广播电台,我们将所有音乐存储为高比特率 mp3,当从 CD 中获取新歌曲时,它们是 wav。我需要能够比较重复的 mp3 和 wav 文件夹(除了文件扩展名外,命名将相同)。目的是在没有 mp3 版本的 wav 文件夹中生成项目列表。
Python 2.7 已安装,我对 python 的编码经验非常有限。
感谢所有帮助,即使它只是朝着正确的方向踢了一脚...... 谢谢。
最佳答案
使用os.listdir
获取文件夹内容,os.path.splitext
确定基名:
import os
wavs = set(os.path.splitext(fn)[0] for fn in os.listdir('/path/to/wavs'))
mp3s = set(os.path.splitext(fn)[0] for fn in os.listdir('/path/to/mp3s'))
must_convert = wavs - mp3s
如果你想整理多个文件夹的 mp3 和 wavs(但不是递归的),你必须存储基本名称和完整文件名:
import os,collections
files = collections.defaultdict(dict)
for d in ['/path/to/wavs', '/more/wavs', '/some/mp3s', '/other/mp3s']:
for f in os.listdir(d):
basename,ext = os.path.splitext(f)
files[ext][basename] = os.path.join(d, f)
files_to_convert = [fn for basename,fn in files['.wav'].items()
if basename not in files['.mp3']]
关于python - 比较文件夹内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11167953/