zoukankan      html  css  js  c++  java
  • python在一堆目录中寻找json文件

    在一个目录下,有好几层目录,里面零零散散存放着几个json文件,我要做的是用python脚本把它们都找出来,一开始就一层一层地找,用os.listdir加上for循环,根据目录树的深度确定for循环的数量,很显然,不够灵活,也效率太低

    换一种方法,使用os.walk,简直是神器,它可以递归查找某一目录下的所有目录及文件,一个不落

    for x in os.walk('./'):
        print([x[0]+target for target in x[2] if 'json' in target])

    os.walk()方法返回一个generator,需要for循环来得到每个元素,这里用x代替,每个元素都是一个元组,长度为三,类似下面这样(此处是windows环境,路径里出现了转义符)

    ('../../201812/ok\DX419529', [], ['DX419529-1.jpg', 'DX419529.jpg', 'DX419529.json'])
    ('../../201812/ok\DX419530', [], ['DX419530-1.jpg', 'DX419530.jpg', 'DX419530.json'])
    ('../../201812/ok\DX419541', [], ['DX419541-1.jpg', 'DX419541.jpg', 'DX419541.json'])

    元组中第一个元素是当前递归到的根文件夹,第二个元素是该根目录下面的子文件夹,用列表存储,第三个元素是根文件夹下面的子文件,这时只需要对x的第三个元素进行字符串查找,就可以得到想要的json文件名,再结合根文件夹路径,即可读取相应文件,比如上面的代码,输出如下

    '../../201812/ok\DX419529/DX419529.json',
     '../../201812/ok\DX419530/DX419530.json',
     '../../201812/ok\DX419541/DX419541.json',
  • 相关阅读:
    第13章 使用ADO.NET访问数据库
    第11章 连接查询和分组查询
    第10章 模糊查询和聚合函数
    第9章 数据查询基础
    数据库前三章测试题
    用表组织数据
    程序数据集散地:数据库
    深入C#的String类
    线程池
    hadoop-2.8.0 完全分布式运行模式
  • 原文地址:https://www.cnblogs.com/wzyuan/p/10479947.html
Copyright © 2011-2022 走看看