微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用python将多个文件从子目录传输到单个路径文件夹?

如何解决如何使用python将多个文件从子目录传输到单个路径文件夹?

我有一个 Wav 文件名称列表(都是唯一的)-

2003211085_2003211078_ffc0d543799a2984c60c581d.wav
2003214817_2003214800_92720fb19bf9216c2f160733.wav
2003233142_2003233136_8c42d206701830dff6032d41.wav
2003256235_2003256218_4e71bf77b0ffb907990d2e30.wav
2003276239_2003276196_dad6aff70f37817fcd75ffb8.wav
2003352182_2003352170_b1f2990d5f867408cc39c445.wav

一个名为 \019\Recordings 的目录,其中所有这些文件都位于各个子文件夹下。 我想编写一个 python 应用程序,根据所有这些子文件夹中的唯一名称提取这些 wav 文件,并将它们放入单个目标文件夹中。

我是 Python 新手并尝试使用 -

import glob,os
import shutil

target_list_of_wav_names = ["2003211085_2003211078_ffc0d543799a2984c60c581d.wav","2003214817_2003214800_92720fb19bf9216c2f160733.wav","2003233142_2003233136_8c42d206701830dff6032d41.wav"
"2003352182_2003352170_b1f2990d5f867408cc39c445.wav"]

for file in glob.glob('//19/Recordings*.wav',recursive=True):
    print(file)
    if file in target_list_of_wav_names:
        shutil.move(file,"C:/Users/ivd/Desktop/autotranscribe"+file)

但是文件没有反映在目标文件夹中

我该如何解决这个问题?

解决方法

import glob,os
import shutil

target_list_of_wav_names = ['example_wav1.wav','example_wav2.wav',...... etc]

for file in glob.glob('/019/Recordings/*.wav',recursive=True):
    print(file)
    if file in target_list_of_wav_names:
        shutil.move(file,"/mydir/"+file)
,

glob 只是一个基于通配符查找文件的实用程序。它返回与您的查询匹配的文件字符串。

因此您仍然需要使用另一个函数实际移动文件。

您可以使用 os.renameshutil.move 来移动它

for file in glob.glob("*.wav"):
    os.rename(file,f'destinationfolder/{file}')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。