我有一个文件夹,里面装满了我下载的抖音视频。文件名看起来像这样“2022-12-25_@sample123_7181201932356120774”我想为每个拥有超过 1 个视频的创作者创建一个文件夹。在这种情况下,它将是“sample123”
这是我到目前为止生成的代码,我有文件夹中的文件名列表,并设法将其拆分为创建者@
import glob
import os.path
# fle name template is "2022-12-25_@sample123_7181201932356120774"
dir = 'C:\\Users\\name\\Downloads\\sample test'
files = glob.glob(os.path.join(dir, '*.mp4'))
for file in files:
a = file.split("@")[1]
b = a.split("_")[0]
print(b) # output is sample123
任何人都可以指出我正确的方向,我不知道下一步该做什么。
您可以使用以下结构创建一个字典:{creator: [filename1, filename 2...], ...},然后移动 len(value) > 1 的所有(键,值)对的文件。以下是一些代码:
import glob
import os.path
from os import makedirs, rename
# fle name template is "2022-12-25_@sample123_7181201932356120774"
my_dir = 'C:\\Users\\name\\Downloads\\sample test'
files = glob.glob(os.path.join(my_dir, '*.mp4'))
creator_dic = {}
for file in files:
a = file.split("@")[1]
b = a.split("_")[0]
#print(b) # output is sample123
creator_dic.setdefault(b, []).append(file)
for creator, filelist in creator_dic.items():
if len(filelist) > 1:
creator_folder = f'{my_dir}/{creator}/'
makedirs(creator_folder, exist_ok=True)
for file in filelist:
file = file.split('\')[-1]
rename(f'{my_dir}/{file}', f'{creator_folder}{file}')