我正在使用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文件,这些文件具有位于“已清理”文件夹中的同名.OGG文件,而其他.WAV文件不会受到影响。
答案 0 :(得分:3)
@echo off
for %%I in (f:\sound-recordings\*.wav) do (
if exist f:\sound-recordings\cleaned\%%~nI.ogg del %%I
)
答案 1 :(得分:0)
您可以在clean目录中创建元素列表,使用split
去除扩展,然后通过脏目录检查迭代器,检查它是否in
清除。
基本的python伪代码看起来像:
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)