import os
>>> os.listdir(".")
['music', 'speech', 'noise', 'README', 'wave_out.wav', '立体声_缩混.wav', '立体声_缩混_L.wav', '立体声_缩混_R.wav']
import os
def file_name(file_path):
for root, dirs, files in os.walk(file_path):
print(root)
print(dirs)
print(files)
file_name('E:\Download\EC Download')
>>> import os
>>>
>>> for root,dirs,files in os.walk("."):
... print(root)
...
.
./music
./music/fma
./music/fma-western-art
./music/hd-classical
./music/jamendo
./music/rfm
./speech
./speech/librivox
./speech/us-gov
./noise
./noise/free-sound
./noise/sound-bible
备注:os.walk是一个迭代器,依次遍历指定目录下的根路径、文件夹、文件;这个用起来非常方便;
文件存放
-rwxr-xr-x 1 60706 fax 1765 Oct 30 2015 README*
drwxr-sr-x 7 60706 fax 128 Oct 30 2015 music/
drwxr-sr-x 4 60706 fax 73 Oct 30 2015 noise/
drwxr-sr-x 4 60706 fax 66 Oct 30 2015 speech/
-rw-r--r-- 1 root fax 6708268 Dec 28 09:17 wave_out.wav
-rw-r--r-- 1 root fax 13416492 Dec 28 09:17 立体声_缩混.wav
-rw-r--r-- 1 root fax 6714658 Dec 28 09:17 立体声_缩混_L.wav
-rw-r--r-- 1 root fax 6714658 Dec 28 09:17 立体声_缩混_R.wav
import glob
glob.glob("*.wav")
# ['wave_out.wav', '立体声_缩混.wav', '立体声_缩混_L.wav', '立体声_缩混_R.wav']
只查找当前目录下的匹配文件,不进行递归查找
import glob
# glob.glob("**/*.wav",recursive=True)
len(glob.glob("./*/*/*.wav",recursive=True)) #2016
len(glob.glob("**/*.wav",recursive=True)) # 2020
# MUSAN总共2016个wav文件;
第一种需要知道具体目录结构;第二种**可以进行递归查找,非常方便
import glob
for wav_file in glob.iglob("**/*.wav",recursive=True):
print(wav_file)
# 前面的glob.glob方式返回list,glob.iglob是迭代器
>>> type(glob.iglob("**/*.wav",recursive=True))
<class 'generator'>
备注:recursive可以递归查找所有匹配文件,但是需要搭配**/完成,使用*/无效,可以和iglob搭配使用;
更多使用方法可以参考:https://zhuanlan.zhihu.com/p/384656362