Discuss / Python / 记录-打印当前目录和其所有子目录中含有name的所有文件

记录-打印当前目录和其所有子目录中含有name的所有文件

Topic source
import os

def find(s, name):
    # 找到目录s下所有子目录    d = [x for x in os.listdir(s) if os.path.isdir(os.path.join(s, x))]
    # 找到目录s下所有含有name的文件名    f = [os.path.join(str(s), str(x)) for x in os.listdir(s) if os.path.isfile(os.path.join(s, x)) and name in os.path.splitext(x)[0]]
    # 该循环找所有子目录中含有name的文件名    for x in d:
        sub = os.path.join(s, x)
        ff = [os.path.join(str(sub), str(x)) for x in os.listdir(sub) if os.path.isfile(os.path.join(sub, x)) and name in os.path.splitext(x)[0]]
        f = f+ff
    print(f)

find('./Testsubdir', 'aa')

├── Testsubdir

│   ├── 1

│   │   └── aa1

│   ├── 2

│   │   └── aa2

│   ├── aa

│   └── ab1

运行结果:

['./Testsubdir/aa', './Testsubdir/1/aa1', './Testsubdir/2/aa2']

该代码参考一些评论区的朋友,然后练习的第一问?

import osimport timedef ls_l(s):    print("%5s | %10s | %10s" % ('Name', 'Size', 'Data'))    for file in os.scandir(s):        print("%5s | %10s | %10s" % (str(file.name), str(file.stat().st_size/1024)+'KB', str(time.ctime(file.stat().st_ctime))), sep='|')ls_l('./Testsubdir')

├── Testsubdir

│   ├── 1

│   │   └── aa1

│   ├── 2

│   │   └── aa2

│   ├── aa

│   └── ab1

与ls -l 差很多....

Data -> Date

老菜鸡了


  • 1

Reply