python a all_Python How to list all files in a directory?

In Python, we can use os.walker or glob to create a find() like function to search or list files or folders in a specified directory and also it’s subdirectories.

1. os.walker

1.1 List all .txt files in a specified directory + subdirectories.

import os

path = 'c:\\projects\\hc2\\'

files = []

# r=root, d=directories, f = files

for r, d, f in os.walk(path):

for file in f:

if '.txt' in file:

files.append(os.path.join(r, file))

for f in files:

print(f)

Output

c:\projects\hc2\app\readme.txt

c:\projects\hc2\app\release.txt

c:\projects\hc2\web\readme.txt

c:\projects\hc2\whois\download\afrinic.txt

c:\projects\hc2\whois\download\apnic.txt

c:\projects\hc2\whois\download\arin.txt

c:\projects\hc2\whois\download\lacnic.txt

c:\projects\hc2\whois\download\ripe.txt

c:\projects\hc2\whois\out\test\resources\asn\afrinic\3068.txt

c:\projects\hc2\whois\out\test\resources\asn\afrinic\37018.txt

//...

1.2 List all directories in a specified directory + subdirectories.

import os

path = 'c:\\projects\\hc2\\'

folders = []

# r=root, d=directories, f = files

for r, d, f in os.walk(path):

for folder in d:

folders.append(os.path.join(r, folder))

for f in folders:

print(f)

Output

c:\projects\hc2\

c:\projects\hc2\analyzer\

c:\projects\hc2\analyzer\out\

c:\projects\hc2\analyzer\out\production\

c:\projects\hc2\analyzer\out\production\classes\

c:\projects\hc2\analyzer\out\production\classes\com\

//...

2. glob

Changed in version 3.5: Support for recursive globs using **.

2.1 List all .txt files in a specified directory + subdirectories (**).

import glob

path = 'c:\\projects\\hc2\\'

files = [f for f in glob.glob(path + "**/*.txt", recursive=True)]

for f in files:

print(f)

Output

c:\projects\hc2\app\readme.txt

c:\projects\hc2\app\release.txt

c:\projects\hc2\web\readme.txt

c:\projects\hc2\whois\download\afrinic.txt

c:\projects\hc2\whois\download\apnic.txt

c:\projects\hc2\whois\download\arin.txt

c:\projects\hc2\whois\download\lacnic.txt

c:\projects\hc2\whois\download\ripe.txt

c:\projects\hc2\whois\out\test\resources\asn\afrinic\3068.txt

c:\projects\hc2\whois\out\test\resources\asn\afrinic\37018.txt

//...

2.2 List all directories in a specified directory + subdirectories (**).

import glob

folders = [f for f in glob.glob(path + "**/", recursive=True)]

for f in folders:

print(f)

Output

c:\projects\hc2\

c:\projects\hc2\analyzer\

c:\projects\hc2\analyzer\out\

c:\projects\hc2\analyzer\out\production\

c:\projects\hc2\analyzer\out\production\classes\

c:\projects\hc2\analyzer\out\production\classes\com\

//...

References

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值