将图像复制到特定文件夹

用户名

我是python的新手,我正在尝试构建一个小的脚本,该脚本可以从整个服务器上收集图像,我有一定的图像命名:

AMZ_1004.jpg
AMZ_1272.jpg
GOO_1.jpeg
GOO_2.png

我希望脚本浏览每个目录并将文件复制(而不移动)到AMZ&GOO中

import shutil,os

goo_dst = '/home/usr2/Pictures/GOO'
amz_dst = '/home/usr2/Pictures/AMZ'
os.makedirs(goo_dst,exist_ok=1)
os.makedirs(amz_dst,exist_ok=1)
for root, dirs, files in os.walk('/'):
    for name in files:
        path = os.path.join(root, name)
        if name.startswith('GOO_') and (name.endswith('.jpg') or name.endswith('.jpeg') or name.endswith('.png')):
            shutil.copyfile(path, goo_dst)
        elif name.startswith('AMZ_') and name.endswith('.jpg'):
            shutil.copyfile(path, amz_dst)

脚本可以正常运行,有没有办法加快过程?

如果重要的话,脚本可以在Arch Linux上运行

列夫·M。

您可以对脚本进行的最大优化不是在文件系统根目录上开始搜索。

此方法遍历了很多不是文件的内容(例如/dev/proc文件夹),也遍历了文件不太可能存在的系统文件夹。(您真的不希望有任何图像在下方/bin/usr/bin正确吗?)

尝试缩小实际搜索路径,例如/var/wwwApache文件夹所在的位置。

另一个优化可能根本不使用Python,而是直接使用shell脚本:

#!/bin/sh
GOO_DST='/home/usr2/Pictures/GOO'
AMZ_DST='/home/usr2/Pictures/AMZ'

mkdir -p ${GOO_DST}
mkdir -p ${AMZ_DST}

find / -type f -name 'GOO_*.jpg' -o -name 'GOO_*.jpeg' -o -name 'GOO_*.png' -exec cp {} ${GOO_DST} \;

find / -type f -name 'AMZ_*.jpg' -exec cp {} ${AMZ_DST} \;

find实用程序应比手动遍历为您提供更快的结果。

如果您坚持使用Python,请至少移动,path = os.path.join(root, name)以避免对不相关的文件(大多数文件)进行额外的工作。这是一个很小的优化,但仍然可以提供帮助。

另一个选择是使用多线程并行化搜索,但是您将需要手动确定每个线程将搜索文件系统的哪一部分。

如果有2个线程经过相同的文件夹,则将浪费更多时间。另外,请注意,对该脚本进行多线程处理可能会导致其在运行时占用更多CPU。

在这里阅读更多详细信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自动将图像复制到资产文件夹

Docker:将文件夹复制到多个图像

PHP将图像从url复制到文件夹

使用WPF C#将图像文件复制到空文件夹

“ xargs -a文件”将文件复制到文件夹

将文本文件中列出的特定文件从源文件夹复制到目标文件夹

如何将图像从多个子文件夹复制到公共文件夹并重命名?

无法使用 Applescript 将图像文件夹复制到另一个文件夹

使用Python将子文件夹中的图像复制到另一个文件夹

尝试将具有特定扩展名的文件从源文件夹复制到目标文件夹

如何将文件从特定文件夹复制到C#中的共享文件夹?

Powershell将所有子文件夹中的特定文件复制到单个文件夹

如何将列表中的特定文件从子文件夹复制到文件夹?

bash shell 脚本:将文件夹内文件夹的特定内容从每个文件夹复制到桌面上的新文件夹

将特定扩展名的文件批量复制到文件夹

如何将系统中的所有.sol文件复制到特定文件夹

将特定文件复制到另一个文件夹

如何将特定文件夹/文件复制到工件?

Python-将列表中的特定文件复制到新文件夹中

如何将随机文件复制到特定文件夹?

将文件列表复制到特定文件夹位置

将文件复制到资产文件夹

将文件复制到多个文件夹

Maven将源文件复制到文件夹

将文件复制到相应的目标文件夹

将图像从 url 复制到文件夹会出错吗?- PHP

将图像复制到另一个文件夹

Webpack没有将图像复制到dist文件夹

将选取的图像复制到设备上的不同文件夹