在Python中删除具有不同名称的文件

乌斯特罗茨

我正在尝试删除目录中的几个文件。

到目前为止,我有该代码:

   for filename in glob.glob("buffer*" ):
        os.remove(filename) 
    for filename in glob.glob("grid*" ):
        os.remove(filename)
    for filename in glob.glob("OSMroads*" ):
        os.remove(filename)
    for filename in glob.glob("newCostSurface*" ):
        os.remove(filename)
    for filename in glob.glob("standsLine*" ):
        os.remove(filename)
    for filename in glob.glob("standsReprojected*" ):
        os.remove(filename)

有办法提高效率吗?

阿巴内特

glob当然,进行6次单独的调用将迭代目录对象6次。

幸运的是,在几乎所有平台上,它都可能在第一次之后就被缓存了。除非您的目录绝对是巨大的,否则这不会是一个明显的问题。

但是,由于您明确询问了效率,因此您显然可以迭代一次并过滤结果。最简单的方法是使用fnmatch所有glob要做的就是调用listdir,然后调用fnmatch每个结果。您可以通过多个fnmatch呼叫执行相同的操作

for filename in os.listdir('.'):
    if fnmatch.fnmatch(filename, 'buffer*'):
        os.remove(filename)
    # etc.

当然,您可以用与简化现有代码完全相同的方式来简化此操作:

for filename in os.listdir('.'):
    for pattern in ['buffer*', 'grid*', 'OSMroads*',
                    'newCostSurface*','standsLine*', 'standsReprojected*']:
        if fnmatch.fnmatch(filename, pattern):
            os.remove(filename)

或者:

for filename in os.listdir('.'):
    if any(fnmatch.fnmatch(filename, pattern)
           for pattern in ['buffer*', 'grid*', 'OSMroads*',
                           'newCostSurface*','standsLine*', 'standsReprojected*']):
        os.remove(filename)

如果您确实需要压缩百分之一的性能,可以使用fnmatch.translate将每个模式转换为一个正则表达式,然后将正则表达式合并为一个替代项,然后对其进行编译,然后将该正则表达式对象应用于每个文件名。但是,fnmatch与读取目录对象的I / O时间相比,CPU时间可能很小,甚至无法衡量。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

搜索和删除具有不同名称的重复文件

来自分类Dev

搜索和删除具有不同名称的重复文件

来自分类Dev

删除不同子目录中具有相同名称的文件夹的内容

来自分类Dev

在 Windows 中删除具有相同名称但不同文件扩展名的文件差异的最快方法

来自分类Dev

查找具有相同名称但扩展名不同的文件并删除最早的文件

来自分类Dev

如何创建多个具有不同名称的文件并用Python写入文件

来自分类Dev

合并不同文件夹中具有相同名称的文件

来自分类Dev

是否有功能在python中保存多个具有不同名称的csv文件?

来自分类Dev

从具有相同名称的库中包含具有相同名称的不同对象。

来自分类Dev

lpr打印具有不同名称和目录的文件

来自分类Dev

如何仅查找具有不同名称的重复文件?

来自分类Dev

具有不同名称的Rsync文件目录

来自分类Dev

如何导入具有固定路径的不同名称的文件

来自分类Dev

如何在不同目录中填充具有相同名称的可执行文件?

来自分类Dev

在Linux中重命名具有相同名称,不同扩展名的文件:

来自分类Dev

资产目录:访问不同文件夹中具有相同名称的图像

来自分类Dev

如何使用R中的for循环保存具有不同名称的文件?

来自分类Dev

在git的2个不同分支中合并2个具有相同名称的文件

来自分类Dev

从文档目录中获取包含相同名称但具有不同扩展名的文件列表。

来自分类Dev

在Java中读取多个具有不同名称的文本文件

来自分类Dev

不同后备豆中具有相同名称的日期

来自分类Dev

PHP中具有相同名称的不同元素

来自分类Dev

C ++中具有相同名称但成员不同的struct

来自分类Dev

在tkinter中创建多个具有不同名称的按钮

来自分类Dev

从具有不同名称的表中获取值的AVG()

来自分类Dev

将一些具有相同名称的文件绑定到R中的不同文件夹中

来自分类Dev

在r中合并具有相同名称的文件,并将其写入R中的不同文件

来自分类Dev

Python:具有相同名称的模块和文件

来自分类Dev

在Linux中创建多个具有相同名称的文件

Related 相关文章

  1. 1

    搜索和删除具有不同名称的重复文件

  2. 2

    搜索和删除具有不同名称的重复文件

  3. 3

    删除不同子目录中具有相同名称的文件夹的内容

  4. 4

    在 Windows 中删除具有相同名称但不同文件扩展名的文件差异的最快方法

  5. 5

    查找具有相同名称但扩展名不同的文件并删除最早的文件

  6. 6

    如何创建多个具有不同名称的文件并用Python写入文件

  7. 7

    合并不同文件夹中具有相同名称的文件

  8. 8

    是否有功能在python中保存多个具有不同名称的csv文件?

  9. 9

    从具有相同名称的库中包含具有相同名称的不同对象。

  10. 10

    lpr打印具有不同名称和目录的文件

  11. 11

    如何仅查找具有不同名称的重复文件?

  12. 12

    具有不同名称的Rsync文件目录

  13. 13

    如何导入具有固定路径的不同名称的文件

  14. 14

    如何在不同目录中填充具有相同名称的可执行文件?

  15. 15

    在Linux中重命名具有相同名称,不同扩展名的文件:

  16. 16

    资产目录:访问不同文件夹中具有相同名称的图像

  17. 17

    如何使用R中的for循环保存具有不同名称的文件?

  18. 18

    在git的2个不同分支中合并2个具有相同名称的文件

  19. 19

    从文档目录中获取包含相同名称但具有不同扩展名的文件列表。

  20. 20

    在Java中读取多个具有不同名称的文本文件

  21. 21

    不同后备豆中具有相同名称的日期

  22. 22

    PHP中具有相同名称的不同元素

  23. 23

    C ++中具有相同名称但成员不同的struct

  24. 24

    在tkinter中创建多个具有不同名称的按钮

  25. 25

    从具有不同名称的表中获取值的AVG()

  26. 26

    将一些具有相同名称的文件绑定到R中的不同文件夹中

  27. 27

    在r中合并具有相同名称的文件,并将其写入R中的不同文件

  28. 28

    Python:具有相同名称的模块和文件

  29. 29

    在Linux中创建多个具有相同名称的文件

热门标签

归档