使用os.walk过滤文件扩展名,但文件名受到限制

亚当·麦克331

我正在使用os.walk遍历目录,并希望计算该目录.java文件中的行数。从其他答案中发现,我可以使用fnmatch.filter仅获得如下的.java文件:

for (root, dirs, files) in os.walk(project_directory):
        for file in fnmatch.filter(files, '*.java'):
            # get line count

但是,我想排除一些具有特定名称的文件,例如MyExclusion.java。我如何增强过滤器以避免搜索这些文件?我能找出的最好办法是添加另一个条件:

for (root, dirs, files) in os.walk(project_directory):
        for file in fnmatch.filter(files, '*.java'):
            if file != 'MyExclusion.java':
                # get line count

可以使用fnmatch.filter来执行此操作,还是我被迫在此处添加条件检查?

元烤面包机

您可能已经将过滤器传递给另一个过滤器函数,或者只是构造了一个列表理解器。

>>> files = ['manifest.xml', 'Test.java', 'Foo.java', 'MyExclusion.java']
>>> [f for f in fnmatch.filter(files, '*.java')
...     if f not in ('MyExclusion.java', 'Bad.java')]
['Test.java', 'Foo.java']

使用正则表达式的替代方法:编译模式并将其替换为if条件

>>> import re
>>> patt = re.compile('^(MyExclusion|Bad)')
>>> [i for i in fnmatch.filter(files, '*.java') if not patt.search(i)]
['Test.java', 'Foo.java']

考虑使用生成器表达式而不是列表推导,以便执行以下操作:

    for file in (i for i in fnmatch.filter(files, '*.java') if not patt.search(i)):
        # get line count

为了避免一次全部生成第二个列表,可能会减少内存消耗。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用os.walk过滤文件扩展名,但文件名受限制

来自分类Dev

使用 Powershell 过滤文件扩展名

来自分类Dev

如何使用API调用扩展名过滤文件名?

来自分类Dev

如何从os.walk中排除文件扩展名

来自分类Dev

使用jfilechooser java动态文件扩展名过滤

来自分类Dev

使用 os.walk 在目录树下查找具有特定文件扩展名的文件夹

来自分类Dev

无法使用文件名或目录名_metadata加载扩展名

来自分类Dev

使用flask获取输入文件名和文件扩展名

来自分类Dev

使用 wget 下载与文件名中的扩展名和特定文本匹配的文件

来自分类Dev

文件名是否允许在文件扩展名之前使用其他点?

来自分类Dev

获取输入文件名并复制它,但使用不同的文件扩展名

来自分类Dev

使用powershell在linux发行版中获取文件名和文件扩展名

来自分类Dev

Unix:删除文件名,仅获取扩展名,然后使用sed重命名该扩展名

来自分类Dev

使用括号扩展来更改文件名,而不是扩展名?

来自分类Dev

使用os.path根据扩展名搜索文件

来自分类Dev

使用grep和map查找扩展名为.png的文件名,但输出时不带扩展名

来自分类Dev

使用ImageMagick在扩展名不在文件名中时转换图像

来自分类Dev

如何使用Camel的'doneFileName'属性作为具有双扩展名的文件名?

来自分类Dev

使用带有原始文件名和扩展名的Google Drive API下载

来自分类Dev

使用ImageMagick在扩展名不在文件名中时转换图像

来自分类Dev

使用pathinfo搜索扩展名时允许文件名中包含点

来自分类Dev

使用Windows批处理脚本(保留扩展名)更改文件名?

来自分类Dev

如何使用php获取没有扩展名的网站文件名和?id=someid

来自分类Dev

如何通过使用扩展名进行搜索来查找文件名

来自分类Dev

如何使用PowerShell按名称文件和其他扩展名文件过滤文件?

来自分类Dev

使用SLPDF扩展名打开文件

来自分类Dev

使用JFileChooser选择文件扩展名

来自分类Dev

RegExp使用目录和文件扩展名黑名单过滤特定文件路径

来自分类Dev

如何使用Java中的文件对话框过滤不带扩展名的文件

Related 相关文章

  1. 1

    使用os.walk过滤文件扩展名,但文件名受限制

  2. 2

    使用 Powershell 过滤文件扩展名

  3. 3

    如何使用API调用扩展名过滤文件名?

  4. 4

    如何从os.walk中排除文件扩展名

  5. 5

    使用jfilechooser java动态文件扩展名过滤

  6. 6

    使用 os.walk 在目录树下查找具有特定文件扩展名的文件夹

  7. 7

    无法使用文件名或目录名_metadata加载扩展名

  8. 8

    使用flask获取输入文件名和文件扩展名

  9. 9

    使用 wget 下载与文件名中的扩展名和特定文本匹配的文件

  10. 10

    文件名是否允许在文件扩展名之前使用其他点?

  11. 11

    获取输入文件名并复制它,但使用不同的文件扩展名

  12. 12

    使用powershell在linux发行版中获取文件名和文件扩展名

  13. 13

    Unix:删除文件名,仅获取扩展名,然后使用sed重命名该扩展名

  14. 14

    使用括号扩展来更改文件名,而不是扩展名?

  15. 15

    使用os.path根据扩展名搜索文件

  16. 16

    使用grep和map查找扩展名为.png的文件名,但输出时不带扩展名

  17. 17

    使用ImageMagick在扩展名不在文件名中时转换图像

  18. 18

    如何使用Camel的'doneFileName'属性作为具有双扩展名的文件名?

  19. 19

    使用带有原始文件名和扩展名的Google Drive API下载

  20. 20

    使用ImageMagick在扩展名不在文件名中时转换图像

  21. 21

    使用pathinfo搜索扩展名时允许文件名中包含点

  22. 22

    使用Windows批处理脚本(保留扩展名)更改文件名?

  23. 23

    如何使用php获取没有扩展名的网站文件名和?id=someid

  24. 24

    如何通过使用扩展名进行搜索来查找文件名

  25. 25

    如何使用PowerShell按名称文件和其他扩展名文件过滤文件?

  26. 26

    使用SLPDF扩展名打开文件

  27. 27

    使用JFileChooser选择文件扩展名

  28. 28

    RegExp使用目录和文件扩展名黑名单过滤特定文件路径

  29. 29

    如何使用Java中的文件对话框过滤不带扩展名的文件

热门标签

归档