我目前有一个父目录,其中有 10 个文件夹,每个文件夹的名称都有 10 个不同的日期(即 2016-11-21 等)。这些日期文件夹中是具有唯一文件名的 WAV 文件。
另外,我有同名的相应 TXT 文件,但它们目前不在与匹配的 WAV 文件的文件夹中。我该如何循环播放,以便如果文件名匹配,TXT 文件就会移动到父目录中的现有文件夹位置?
目前我有这样的结构:
/Folder1/File1.TXT
/Folder1/2011-11-21/File1.WAV
我想要这样的结构:
/Folder1/2011-11-21/File1.TXT
/Folder1/2011-11-21/File1.WAV
这可能吗?谢谢
答案1
您可以使用 glob 和 humil 来完成您的任务。
请注意,WAV 和 TXT 区分大小写,因此您需要进行相应的更改,或者添加一些内容来检查两者。
import os
import glob
import shutil
# Create a list of WAV files. If you put in txt directory, remove Folder1; otherwise, put full path.
wav_files = glob.glob('Folder1/**/*.WAV')
# Create a list of text files to move
txt_files = glob.glob('Folder1/*.TXT')
# Check OS for file separator since that is not provided
if os.name == 'nt':
separator = '\\'
else:
separator = '/'
for txt in txt_files:
# [-1] takes the last part of the path
# .strip removes .TXT from the file name
txt_name = txt.split(separator)[-1].strip('.TXT')
for wav in wav_files:
wav_name = wav.split(separator)[-1].strip('.WAV')
wav_path = wav.strip(txt_name + '.WAV')
# Check if the wav_name and txt_name are the same.
# There is no check for case.
if wav_name == txt_name:
shutil.move(txt, wav_path)