将文件移动到其对应的文件夹

Move files to its corresponding folders

如何将每个文件移动到相应的文件夹中? 我设法根据文件的标题创建了一个文件夹。现在我想将每个文件移动到它的文件夹中。

我的代码:

import os 
directorio=list(os.listdir())

pdfs=[]

for i in directorio: 
  if i.endswith('.pdf'):
    pdfs.append(i)
  
#with this step we create different folders for each group of files 
for i in range(len(pdfs)):

  folder=pdfs[i].split('#')[1].split('.')[0]

  try:
    folder=os.mkdir(folder)
  except:
    pass

这是您的原始代码的清理版本,它也会移动。请注意,我使用了 pathlib.Path 而不是旧的 os.path api.

from pathlib import Path

for pdf in Path(".").glob("*.pdf"):
    dir = pdf.parent / pdf.stem.split("#")[-1]
    dir.mkdir(exist_ok=True)
    pdf.rename(dir / pdf.name)

变化:

  • 使用 glob。但 listdir 和手动过滤也有效
  • 不要投射到列表
  • 创建目录后直接移动,因为这就是我们想要目录的目的,我们现在知道了!

exist_ok 如果目录已经存在,mkdir 将继续执行,而不是抛出错误。