使用os.walk方法获取包含两种文件类型的目录路径

斯捷潘

我想在Python 2.7中docx使用os().walk方法列出所有包含文件的文件我设法用下面的代码做到了这一点,但是我想知道是否可以限制此列表以仅显示仅包含两种特定文件类型(例如“ docx”和“ pdf”)的文件夹吗?

import os
import walk

a = open("output.txt", "w")
for path, subdirs, files in os.walk(r'C:\Users\Stephen\Desktop'):
    for filename in files:
        if filename.endswith(('.docx')):
            f = os.path.join(path, filename)
            a.write(str(f) + os.linesep) 
马丁·彼得斯(Martijn Pieters)

只需跳过至少没有这两个扩展名的目录即可;每个目录的文件列表是有限的,因此any()用于测试特定扩展名的成本很低:

for path, subdirs, files in os.walk(r'C:\Users\Stephen\Desktop'):
    if not (any(f.endswith('.pdf') for f in files) and 
            any(f.endswith('.docx') for f in files)):
        # no PDF or Word files here, skip
        continue
    # directory contains *both* PDF and Word documets

当要测试的扩展列表变长时,您可能只想创建一组所有可用扩展:

for path, subdirs, files in os.walk(r'C:\Users\Stephen\Desktop'):
    extensions = {os.path.splitext(f)[-1] for f in files}
    if not extensions >= {'.pdf', '.docx', '.odt', '.wpf'}:
        # directory doesn't contain *all* required file types 
        continue

>=如果测试右侧集是左侧的一个子集(因此extensions是一个右侧集的超集); 因此至少extensions包含右侧命名的所有扩展名:

>>> {'.foo', '.docx', '.pdf', '.odt'} >= {'.pdf', '.docx', '.odt', '.wpf'}  # missing .wpf
False
>>> {'.foo', '.wpf', '.docx', '.pdf', '.odt'} >= {'.pdf', '.docx', '.odt', '.wpf'} # complete
True

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:为什么我使用os.walk的方法未返回所有可用路径?

来自分类Dev

如何使用Python os walk获取子文件夹和文件夹的数量?

来自分类Dev

使用os.walk查找文件路径

来自分类Dev

重构两种使用接口和/或泛型的方法

来自分类Dev

使用两种不同的fragmenttransaction类型编译错误

来自分类Dev

使用jQuery筛选两种输入类型

来自分类Dev

os.walk认为我的目录仅包含.DS_Store文件

来自分类Dev

使用两种不同的方法调用方法

来自分类Dev

为什么包含HashMap实现使用两种权力?

来自分类Dev

如何为两种不同的方法设计Jax-RS,它们具有相同的路径并产生/使用相同的媒体类型?

来自分类Dev

如何使用os.walk()python计算目录的大小?

来自分类Dev

使用os.walk排除根目录

来自分类Dev

如何使用文件路径作为os.walk的源参数来复制文件

来自分类Dev

如何使用os.walk查找文件的路径?

来自分类Dev

路径中使用参数后,两种成分混合反应

来自分类Dev

使用os.walk获取符号链接

来自分类Dev

如何使用Restful Web服务对两种不同的操作使用两种Web方法?

来自分类Dev

重构两种使用接口和/或泛型的方法

来自分类Dev

使用os.walk()时如何排除目录?其他方法无效

来自分类Dev

如何在Python中使用os.walk从提供的输入路径中获取目录列表

来自分类Dev

使用os.walk()检索特定目录

来自分类Dev

在目录中,如何在相同的“级别”上使用两种不同的标题格式?

来自分类Dev

当我使用“ os.walk”获取python 3上的文件路径时,此错误是什么意思?

来自分类Dev

os.walk认为我的目录仅包含.DS_Store文件

来自分类Dev

不使用Web API两种不同的GET方法

来自分类Dev

使用os.walk跳过列表中的目录?

来自分类Dev

无法使用os.walk解析路径

来自分类Dev

允许无缝使用两种变量类型

来自分类Dev

如何使用maybe属性转换两种流类型

Related 相关文章

  1. 1

    Python:为什么我使用os.walk的方法未返回所有可用路径?

  2. 2

    如何使用Python os walk获取子文件夹和文件夹的数量?

  3. 3

    使用os.walk查找文件路径

  4. 4

    重构两种使用接口和/或泛型的方法

  5. 5

    使用两种不同的fragmenttransaction类型编译错误

  6. 6

    使用jQuery筛选两种输入类型

  7. 7

    os.walk认为我的目录仅包含.DS_Store文件

  8. 8

    使用两种不同的方法调用方法

  9. 9

    为什么包含HashMap实现使用两种权力?

  10. 10

    如何为两种不同的方法设计Jax-RS,它们具有相同的路径并产生/使用相同的媒体类型?

  11. 11

    如何使用os.walk()python计算目录的大小?

  12. 12

    使用os.walk排除根目录

  13. 13

    如何使用文件路径作为os.walk的源参数来复制文件

  14. 14

    如何使用os.walk查找文件的路径?

  15. 15

    路径中使用参数后,两种成分混合反应

  16. 16

    使用os.walk获取符号链接

  17. 17

    如何使用Restful Web服务对两种不同的操作使用两种Web方法?

  18. 18

    重构两种使用接口和/或泛型的方法

  19. 19

    使用os.walk()时如何排除目录?其他方法无效

  20. 20

    如何在Python中使用os.walk从提供的输入路径中获取目录列表

  21. 21

    使用os.walk()检索特定目录

  22. 22

    在目录中,如何在相同的“级别”上使用两种不同的标题格式?

  23. 23

    当我使用“ os.walk”获取python 3上的文件路径时,此错误是什么意思?

  24. 24

    os.walk认为我的目录仅包含.DS_Store文件

  25. 25

    不使用Web API两种不同的GET方法

  26. 26

    使用os.walk跳过列表中的目录?

  27. 27

    无法使用os.walk解析路径

  28. 28

    允许无缝使用两种变量类型

  29. 29

    如何使用maybe属性转换两种流类型

热门标签

归档