python - 比较文件夹内容

标签 python

我需要比较 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/

相关文章:

python - 基于两列的 Pandas isin

python - 检测 PyCharm/Python 中所有缺失的导入

python - 一些基本的 tkinter 问题

python - 如何创建在python中订购的产品的共现矩阵?

python - 只能通过用户名重置密码

python - 为什么我的协程会阻塞整个 Tornado 实例?

python - 使用 Pandas 从 zip 中读取特定的 csv 文件

python - 从 Pygame Sprite Collision 生成单个随机数,目前生成多个随机数

javascript - 如何在 Django 中使用由 html 和 css 制作的注册表单

python - 打开其中的文件后删除包含的目录是否安全?