import os
files = os.listdir("C:\\Users")
print(files)
>>>
['All Users', 'Default', 'Default User', 'desktop.ini', 'lzjun', 'Public', '__SUNLOGIN_USER__']
listdir 会返回该目录下所有子目录和文件,如果只想找文件,可以用 os.path
模块isfile
进行过滤
files = [f for f in files if os.path.isfile(os.path.join("C:\\Users", f))]
print(files)
>>>
['desktop.ini']
第二种方式是使用 os.walk
walk 方法返回的是一个生成器对象,将返回整个目录树,迭代时,先返回最外层目录和文件,然后再返回子目录下的文件和目录,直到最里面一层目录为止。
每次迭代时,返回一个tuple对象,包含三个元素 dirpath, dirnames, filenames,分别为当前目录的名字,当前目录下所有子目录,当前目录下所有文件。
for item in walk("C:\\Users"):
dirpath, dirnames, filenames = item
print(dirpath)
print(dirnames)
print(filenames)
break
>>>
C:\Users
['All Users', 'Default', 'Default User', 'lzjun', 'Public', '__SUNLOGIN_USER__']
['desktop.ini']
这里因为我们只想获取第一层目录和文件,所以for循环一次后就break了。
关注公众号「Python之禅」,回复「1024」免费获取Python资源