python检索文件并保存

import os


def filelist(dir, subdir=None, filefeat=None):
    '''
    检索指定文件夹下的文件列表
    :param dir: 检索起始根路径
    :param subdir: 检索的根路径下的二级路径,默认为None
    :type subdir: list
    :param filefeat: 检索的文件的特征,比如filefeat='.jpg'
    :return: listfile

    Usage::
    '''
    dlen = len(dir)
    dlen += 1
    listdir = get_subdir(dir, subdir)
    listfile = []
    for d in listdir:
        get_filelist(d, listfile, filefeat=filefeat)

    listfile = [k[dlen:] for k in listfile]
    return listfile


def get_subdir(dir, subpath):
    listdir = []
    if subpath is not None:
        for n in subpath:
            listdir.append(os.path.join(dir, n))
    else:
        listdir.append(dir)
    return listdir


def get_filelist(dir, Filelist, filefeat=None):
    '''
    检索指定文件夹下的文件列表
    :param dir: 检索起始根路径
    :param Filelist: 结果保存成list并返回
    :param filefeat: 检索的文件的特征,比如filefeat='.jpg'
    :return:

    Usage::
    '''
    flen = 0
    if filefeat != None:
        flen = len(filefeat)
        flen *= -1
    newDir = dir
    if os.path.isfile(dir):
        if filefeat is None:
            Filelist.append(dir)
        else:
            if dir[flen:] == filefeat:
                Filelist.append(dir)
    elif os.path.isdir(dir):
        for s in os.listdir(dir):
            newDir = os.path.join(dir, s)
            get_filelist(dir=newDir, Filelist=Filelist, filefeat=filefeat)

    return Filelist


def text_save(filename, data):
    file = open(filename, 'w')
    st = str(data)
    st = st.replace("['", "")
    st = st.replace("']", "")
    st = st.replace("', '", "\n")
    file.write(st)
    file.close()
    print("保存文件成功")


if __name__ == '__main__':
    sublist = ['umdfaces_batch1_alignment_rlbf',
               'umdfaces_batch2_alignment_rlbf',
               'umdfaces_batch3_alignment_rlbf']
    filelist = filelist(dir='../data', subdir=sublist, filefeat='.pts')
    print(len(filelist))

    text_save("list_ptsfile.txt", filelist)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值