我有两个文件夹,一个名为' modified'还有一个名为“原创”的作品。
我想,对于'修改过的所有wav文件,将原来的'替换为名称对应的'无论他们在哪里。
例如,如果调用了一个文件' sound1.wav'在修改后,我想找到' sound1.wav'在原始'的某个子目录中并用修改后的版本替换原来的。
我运行Windows 8所以命令提示符或cygwin最适合工作。
答案 0 :(得分:1)
根据要求,我编写了执行上述操作的python代码。我使用'os'和'shutil'模块首先导航目录,然后使用覆盖文件。
'C:/../ modified'是指包含我们已修改并希望用来覆盖原件的文件的目录。
'C:/../ originals'是指包含许多子目录的目录,其中的文件名与“modified”中的名称相同。
代码的工作原理是列出修改后的目录中的每个文件,对于每个文件,我们都说明了文件的路径。然后,我们查看原始目录的所有子目录,以及修改的和原始文件共享相同名称的位置,我们使用shutil.copyfile()替换原始文件。
因为我们正在使用Windows,所以有必要将斜杠的方向更改为“/”。
对已修改目录中的每个文件执行此操作。
如果有人遇到同样的问题,我希望这会派上用场!
import os
import shutil
for wav in os.listdir('C:/../modified'):
modified_file = 'C:/../modified/' + wav
for root, dirs, files in os.walk('C:/../original'):
for name in files:
if name == wav:
original_file = root + '/' + name
original_file = replace_file.replace('\\','/')
shutil.copyfile(modified_file, original_file)
print wav + ' overwritten'
print 'Complete'