删除具有相同名称但扩展名不同的重复文件的脚本
Script to delete duplicate files with same names but different extensions
我正在使用 Audacity 的 Chains 脚本功能将许多未压缩的大型 .WAV 文件同时批量转换和编辑为更小的 .OGG 格式。我最终得到如下文件夹结构:
f:/sound-recordings:
-- rec1.wav
-- rec2.wav
-- rec3.wav
-- rec4.wav
-- rec5.wav
f:/sound-recordings/cleaned:
-- rec1.ogg
-- rec2.ogg
-- rec3.ogg
一些源 .WAV 文件已损坏(请注意上例中的 rec4.wav 和 rec5.wav),Audacity 不会转换它们(至少通过链函数)。这会产生一个问题,因为比较这两个文件夹会变得非常乏味,并且只删除已成功转换为 .OGG 的 .WAV 文件。
在上面的示例中,"rec1.wav"、"rec2.wav" 和 "rec3.wav" 应该被删除,而 "rec4.wav" 和 "rec5.wav" 保持不变,因为它们已转换。
我需要一个脚本(批处理或 python 首选)从主文件夹中删除任何 .WAV 文件,这些文件在 "cleaned" 文件夹中具有相同名称的 .OGG 文件,留下其他 .WAV 文件。未修改 WAV 文件。
您可以在干净目录中创建一个元素列表,使用 split
去除扩展名,然后遍历脏目录检查它是否 in
干净。
基本 python pseudo-code 看起来像:
clean = [filename.split('.')[0] for filename in clean_directory]
delete = [filename for filename in dirty_directory if filename.split('.')[0] in clean]
for filename in delete:
os.remove(filename)
@echo off
for %%I in (f:\sound-recordings\*.wav) do (
if exist f:\sound-recordings\cleaned\%%~nI.ogg del %%I
)
我正在使用 Audacity 的 Chains 脚本功能将许多未压缩的大型 .WAV 文件同时批量转换和编辑为更小的 .OGG 格式。我最终得到如下文件夹结构:
f:/sound-recordings:
-- rec1.wav
-- rec2.wav
-- rec3.wav
-- rec4.wav
-- rec5.wav
f:/sound-recordings/cleaned:
-- rec1.ogg
-- rec2.ogg
-- rec3.ogg
一些源 .WAV 文件已损坏(请注意上例中的 rec4.wav 和 rec5.wav),Audacity 不会转换它们(至少通过链函数)。这会产生一个问题,因为比较这两个文件夹会变得非常乏味,并且只删除已成功转换为 .OGG 的 .WAV 文件。
在上面的示例中,"rec1.wav"、"rec2.wav" 和 "rec3.wav" 应该被删除,而 "rec4.wav" 和 "rec5.wav" 保持不变,因为它们已转换。
我需要一个脚本(批处理或 python 首选)从主文件夹中删除任何 .WAV 文件,这些文件在 "cleaned" 文件夹中具有相同名称的 .OGG 文件,留下其他 .WAV 文件。未修改 WAV 文件。
您可以在干净目录中创建一个元素列表,使用 split
去除扩展名,然后遍历脏目录检查它是否 in
干净。
基本 python pseudo-code 看起来像:
clean = [filename.split('.')[0] for filename in clean_directory]
delete = [filename for filename in dirty_directory if filename.split('.')[0] in clean]
for filename in delete:
os.remove(filename)
@echo off
for %%I in (f:\sound-recordings\*.wav) do (
if exist f:\sound-recordings\cleaned\%%~nI.ogg del %%I
)