将文件移动到其对应的文件夹
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 将继续执行,而不是抛出错误。
如何将每个文件移动到相应的文件夹中? 我设法根据文件的标题创建了一个文件夹。现在我想将每个文件移动到它的文件夹中。
我的代码:
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 将继续执行,而不是抛出错误。