1.实现一个函数,可以输出指定目录下的指定后缀的文件,也可以排除指定后缀的文件

os.listdir可以列出指定目录下的全部文件名,子文件夹名。但是无法循环列出子文件夹下的子文件夹和文件名。因此函数需要递归的去对目录进行输出文件名并根据给定的后缀进行输出或者不输出。

import os
def get_files(path, include=['.py'], exclude=['.idea', '.xml', '.pyc', '.txt']):tmp = []files = os.listdir(path) ##列出所有的文件名和子目录名称for file in files:new_path = "/".join([path, file]) ##必须按照完整的路径进行操作,因为files的存储的是名称,不包含路径,因此需要和path进行拼接成实际路径if os.path.isdir(new_path):  ## 如果是目录,进行递归调用tmp.extend(get_files(new_path))elif os.path.isfile(new_path): ##如果是文件,如果文件名包含排除的后缀,此时不做任何操作,如果是文件名包含指定的后缀,就将完整的路径输出for exc in exclude:if new_path.find(exc) != -1:##不存在的时候 find 返回-1.否则返回indexbreakelse:for inc in include:if new_path.find(inc) != -1: ##不存在的时候 find 返回-1.否则返回index
                        tmp.append(new_path)tmp.append(new_path)return list(set(tmp))path = "D:/Python36/pycharm/projects/PersonalSeleniumLearning/"
get_files(path)
print(get_files(path))

输出:输出的是完整的路径

['D:/Python36/pycharm/projects/PersonalSeleniumLearning//13.database.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//3.1formatstring.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//19.log.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.cookie.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.Select_test.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.webelement_test.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//8.exceptions.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.video.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//for.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//SmokeTestReport.html', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//screen.jpg', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//homepagetests.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//allvms.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//testsuites.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//public.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.webdriver_pro.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//test.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//20160321.151538.279814.jpg', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.Group_Elements.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//test.db', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//udp-client.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//chrome.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//test.profile', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.debug.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//HTMLTestRunner.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//11.file.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//5.4.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//HTMLResult.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//14.network.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//7.classoperations.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//searchtests.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.screenshot.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//chromedriver.exe', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//12.GUI.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//18.package.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//setup.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//mouse_actions.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.Alert.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//16.分析.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//hello.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//9.magic.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//udp-server.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.download.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//searchproducts.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//6fibs.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//14-urllib.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//3.find_elements.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//5.mail126_mode.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//16.unittest.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//sina.html', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//1.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//mylog.log', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//10.modle.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//15.www.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//4.Page_Wait.py', 'D:/Python36/pycharm/projects/PersonalSeleniumLearning//5.mailtest.py']

这个函数在有些场景下有特殊用处,因此需要了解如何实现

转载于:https://www.cnblogs.com/forfreewill/articles/9408181.html

【Python3_进阶系列_013】Python3-实现文件夹文件的过滤相关推荐

  1. python ftp文件夹文件递归上传推送

    python ftp文件夹文件递归上传推送 posted on 2018-10-16 17:05 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnbl ...

  2. python 使用sort()函数和正则表达式(lambda)对os.listdir()获取的文件夹文件列表进行重新排序 乱序排序

    # 排序函数,对文件列表进行排序 # 排序函数,对文件列表进行排序(filenames为文件夹文件的文件名的字符串列表) def sort_filenames(filenames):# (1)可以以l ...

  3. Python 创建随机名字的文件夹/文件

    Python 创建随机名字的文件夹/文件 导入库 创建文件名 创建文件 导入库 import random import string import os 创建文件名 dir_name = ''.jo ...

  4. VB 详细枚举指定目录、文件夹文件列表

    VB 详细枚举指定目录.文件夹文件列表: Public Function TheFileAttr(P As String) As String '读取指定文件/文件夹属性     On Error G ...

  5. php存在文件夹_PHP创建文件夹 PHP判断文件夹文件是否存在

    这篇文章主要为大家详细介绍了PHP创建文件夹 PHP判断文件夹文件是否存在,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. PHP如何创建文件夹?PHP如何判断文 ...

  6. 计算机各个盘的作用,C盘各个文件夹/文件的作用是什么(Win7/Win8/Win10系统)?

    C盘各个文件夹/文件的作用是什么(Win7/Win8/Win10系统)?有些事情,高手不屑于为我们讲解,有些是因为确实有难度.对于系统文件,大多数朋友都会讳莫如深,好像多神秘似的,今天笔者来吃这个螃蟹 ...

  7. Python批量修改单个文件夹文件后缀

    今天下载了视频,但是视频格式是.mkv的,唱戏机不支持mkv格式,所以需要将后缀改成.mp4(其他文件格式也可以),由于视频比较多一个一个的更改比较麻烦,所以想到了用python来进行批量修改. 首先 ...

  8. 文件夹文件自动生成目录的方法-保存到txt

    文件夹文件自动生成目录的方法-保存到txt 1.打开记事本: 2.复制以下内容: @echo off     dir /b /on >list.txt 3.另存为bat,类型ANSI

  9. 批量更改文件夹/文件的名字

    1. 提取文件夹名字: 在需要更改的文件夹或文件的位置中,新建txt文件 在txt文件中输入:dir */b >test.txt,保存文件 将txt文件后缀更改为bat 双击运行bat 生成te ...

最新文章

  1. 捆绑调整Bundle Adjustment(最速下降法、牛顿法、Levenberg-Marquartdt法)
  2. VISUAL STUDIO 2008 破解方法
  3. BUUCTF-Reverce:不一样的flag
  4. Stream流中的常用方法_map
  5. python原生字符串可以参与比较_正则表达式中对于原生字符串的理解
  6. 198道K8sDocker面试真题大汇总,全网最全八股!
  7. 修改文件 华为交换机_华为交换机系统文件管理配置命令大全(二)
  8. 为什么不敢和别人竞争_净空法师开示:学老实,在社会上不能跟人竞争吗? - 如是我闻佛教网...
  9. 小微企业——信用风险与放款原则分析
  10. 【经验分享】如何为visio扩展云服务图标
  11. 使用python查找重复值
  12. Ubuntu18.04 Deb 包安装方法
  13. 电脑常见问题之-右键无新建文件夹选项
  14. 粗糙集(Rough set) 理论
  15. ECCV2022|腾讯优图开源DisCo:拯救小模型在自监督学习中的效果
  16. android12.0(S) 通知栏不显示闹钟和静音图标 bug
  17. Python——青蛙旅行项目
  18. VR视频为什么都是弯的?
  19. win10设备管理没有android,win10电脑不能识别安卓设备怎么解决?
  20. Android 音视频开发之基础篇 使用 SurfaceView绘制一张图片

热门文章

  1. 无法将多信息文本转换为url_实体链接:信息抽取中的NLP的基础任务
  2. html5 api dom 文档,javascript dom操作API
  3. 实际返回的行数超出请求的行数_代码行数越少越好?
  4. android开发 修改标题栏背景_Android哆啦A梦调试工具体验
  5. python复数运算程序_python复数-python,复数
  6. linux下python安装包_Linux服务器中安装python包管理工具pip
  7. 无法支持python程序的编辑运行和调试_解决pycharm的Python console不能调试当前程序的问题...
  8. mysql56数据库的创建_如何在Mysql下用命令创建数据库用户方法
  9. linux 硬链接 软链接_Linux中的软链接–完整参考
  10. sql avg和count_SQL sum(),count()和avg()函数