028 获取指定路径所有文件的路径名并进行筛选

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# -*- coding: utf-8 -*-
"""
Created on Sun Apr 28 18:51:13 2019

@author: zangz
"""
# -*- coding: utf-8 -*-
"""
Created on Sun Apr 28 18:20:50 2019

@author: zangz
"""
import os
import os.path

#函数查找指定路径中所有文件的路径
#函数查找指定路径中所有文件的路径
def get_file(path):
    list1=[]#用于存储递归查找到的所有文件,传递给函数
    fileList = os.listdir(path)  # 获取path目录下所有文件
    for filename in fileList:
        pathTmp = os.path.join(path,filename) # 获取path与filename组合后的路径
        if os.path.isdir(pathTmp):  # 如果是目录
            a=get_file(pathTmp) # 则递归查找(注意一定要有接受变量,不然就出错了)
            for i in a:
                list1.append(i)
        else: 
            list1.append(pathTmp)
    return list1

path = input('请输入路径:').strip()  #.strip()去除首尾的空格

file_path_list=get_file(path)

#筛选后缀函数,传入包含所有后缀名的列表,以及需要筛选的后缀(默认筛选txt文件)
def shai_xuan_hou_zhui(file_path_list,hou_zhui='.txt'):

    list2=[]  #用于储存筛选好的文件的路径
    for filepath in file_path_list:
        # os.path.splitext():分离文件名与扩展名
        if os.path.splitext(filepath)[1] == hou_zhui:
            list2.append(filepath)
    #        print(filepath +'\n')

    return list2

hou_zhui='.txt'
py_list=shai_xuan_hou_zhui(file_path_list,'.py')  #筛选py文件
txt_list=shai_xuan_hou_zhui(file_path_list,'.txt')   #筛选txt文件
print(txt_list)

例:执行的结果

1
2
3
4
runfile('K:/python程序/获取指定路径所有文件的路径名并进行筛选.py', wdir='K:/python程序')

请输入路径K:\python程序
['K:\\python程序\\123.txt', 'K:\\python程序\\file_path\\123.txt', 'K:\\python程序\\哈哈1.txt', 'K:\\python程序\\汉字转拼音\\std总.txt', 'K:\\python程序\\汉字转拼音\\拼音.txt', 'K:\\python程序\\汉字转拼音\\文件名.txt']