python - 将文件移动到其对应的文件夹
问题描述
如何将每个文件移动到其对应的文件夹?我设法根据文件的标题创建了一个文件夹。现在我想将每个文件移动到它的文件夹中。
我的代码:
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)
变化:
- 使用全局。但是 listdir 和手动过滤也可以
- 不要投射到列表中
- 制作目录后直接移动,因为这就是我们想要目录的目的,我们现在知道了!
exist_ok
如果目录已经存在,则使 mkdir 继续,而不是抛出错误。
推荐阅读
- flutter - 无法使用 Navigator.push() 使用电子邮件和密码登录到 Flutter 中的其他窗口
- audio - 在 Arduino 上播放多个连续音调?
- javascript - 使用 onClick 更新 Javascript 变量
- apache - Flask 的 Apache 虚拟主机配置
- javascript - JS“点击”事件监听器
- arrays - 如何使用 MPI_Scatter 和 MPI_Gather 计算多个进程的平均值?
- javascript - 端点权限
- vaadin - 根据条件防止在网格上选择
- android - Intent putExtra 在 RecyclerView (Kotlin) 的 ViewHolder 中
- sql - 如何从 postgresql 中的时间戳中提取时区?