首页 > 解决方案 > 将文件移动到其对应的文件夹

问题描述

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

我的代码:

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

在此处输入图像描述

标签: pythongoogle-colaboratory

解决方案


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

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)

变化:

  • 使用全局。但是 listdir 和手动过滤也可以
  • 不要投射到列表中
  • 制作目录后直接移动,因为这就是我们想要目录的目的,我们现在知道了!

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


推荐阅读