美文网首页
python 的oswalk

python 的oswalk

作者: yahzon | 来源:发表于2018-03-21 11:24 被阅读10次

    因为不理解oswalk, 所以测试了一下。先看说明:

    os.walk(top)
    
    递归遍历top目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames) 【文件夹路径, 文件夹名字, 文件名】。
    

    哈哈,挺难懂的。那么就写个脚本用一用,这样就明白了。
    os.walk的结果如下:
    首先是结果格式,为一个三元组,
    第一个元素为目录,如下面的F:\my\English\20071112\ttt',
    第二个元素为ttt目录下面的目录,(这里\就是\因为转义要用斜线表示,所以斜线就用两个来表示。)
    第三个元素为ttt目录下面的文件。

    ('F:\\my\\English\\20071112\\ttt', ['p'], ['f001001_01.TextGrid', 'pinyinStatic.csv'])
    

    再看测试脚本:(oswalk遍历脚本自身所在文件夹)

    import os
    import re
    
    
    print u"当前工作目录 : %s" % os.getcwd()
    triple = list(os.walk(os.getcwd()))
    for i in range(0, len(triple)):
        print triple[i]
    

    测试结果:

    F:\my\English\20071112>python repackage.py
    当前工作目录 : F:\my\English\20071112
    ('F:\\my\\English\\20071112', ['test', 'ttt'], ['deStatistics.csv', 'f001001_01.TextGrid', 'repackage.py', 'test.rar', 'textgridAnalysis.py'])
    ('F:\\my\\English\\20071112\\test', [], ['bpinyinStatic.csv', 'f001001_01.TextGrid', 'f001018_03.TextGrid', 'f001018_04.TextGrid', 'phonemeStatic.csv', 'pinyinStatic.csv'])
    ('F:\\my\\English\\20071112\\ttt', ['p', 't'], ['f001001_01.TextGrid', 'pinyinStatic.csv'])
    ('F:\\my\\English\\20071112\\ttt\\p', [], ['test.txt'])
    ('F:\\my\\English\\20071112\\ttt\\t', [], ['fbs.txt'])
    
    image.png image.png

    使用这个方法:

    import os
    for root, dirs, files in os.walk(".", topdown=False):
        for name in files:
            print(os.path.join(root, name))
        for name in dirs:
            print(os.path.join(root, name))
    

    root为目录的路径,dirs为目录下的子目录,files为目录下的文件;
    如果要操作文件,把files中的文件名和root表示的目录路径进行拼接即可。

    相关文章

      网友评论

          本文标题:python 的oswalk

          本文链接:https://www.haomeiwen.com/subject/cqiwqftx.html