首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python将多种文件类型(*.jpg、*.pdf和*.tiff)移动到另一个目录

使用Python将多种文件类型(*.jpg、*.pdf和*.tiff)移动到另一个目录
EN

Stack Overflow用户
提问于 2019-04-17 07:23:18
回答 3查看 89关注 0票数 1

我想将选定格式/类型(例如: pdf、jpg和tiff)的文件移动到另一个目录。

目前,我有以下代码,用于将dir1及其子目录中的所有文件移动到dir2:

代码语言:javascript
复制
for root, dirs, files in os.walk(dir1, topdown=True):
    for name in files:
        shutil.move(os.path.join(root, name), os.path.join(dir2, name))

但是上面的代码包含了所有文件。

我只想移动pdf、tiff和jpg文件,并将所有其他文件格式保留在原始目录中。有人能帮上忙吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-17 07:28:12

像这样的东西是一种简单的方法:

代码语言:javascript
复制
for root, dirs, files in os.walk(dir1, topdown=True):
    for name in files:
        if name.endswith(".pdf") or name.endswith(".jpg") or name.endswith(".tiff"): 
            shutil.move(os.path.join(root, name), os.path.join(dir2, name))
票数 0
EN

Stack Overflow用户

发布于 2019-04-17 07:28:23

在'.‘上拆分文件名最后一部分,保存一个你想要复制的文件扩展名列表,并检查它是否在列表中。

代码语言:javascript
复制
file_extensions = ['jpg', 'pdf', 'tiff']
for root, dirs, files in os.walk(dir1, topdown=True):
    for name in files:
        if name.split('.')[-1] in file_extensions:
            shutil.move(os.path.join(root, name), os.path.join(dir2, name))
票数 1
EN

Stack Overflow用户

发布于 2019-04-17 07:36:56

试试glob

代码语言:javascript
复制
for root, dirs, files in os.walk(dir1, topdown=True):
    files_ok = glob.glob(root + '/*.pdf')
    files_ok += glob.glob(root + '/*.tiff')
    files_ok += glob.glob(root + '/*.jpg')
    for name in files_ok:
        shutil.move(os.path.join(root, name), os.path.join(dir2, name))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55717844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档