Python – 如何在os.listdir中查找文件和跳过目录
我使用os.listdir ,它工作正常,但我也得到了列表中的子目录,这不是我想要的:我只需要文件。 
我需要使用什么function?
 我也看着os.walk ,这似乎是我想要的,但我不知道它是如何工作的。 
 你需要过滤出目录;  os.listdir()列出给定path中的所有名称 。 你可以使用os.path.isdir()来做到这一点: 
 basepath = '/path/to/directory' for fname in os.listdir(basepath): path = os.path.join(basepath, fname) if os.path.isdir(path): # skip directories continue 
  os.walk()在os.walk()做了同样的工作。 除非你需要递减子目录,你不需要在这里使用os.walk() 。 
这是一个很好的列表理解的小单行:
 [f for f in os.listdir(your_directory) if os.path.isfile(os.path.join(your_directory, f))] 
 这将return指定的your_directory list的文件名list 。 
 import os filter(os.path.isfile, os.listdir( os.curdir )) 
os.curdir是当前目录
 for fname in os.listdir('.'): if os.path.isdir(fname): pass # do your stuff here for directory else: pass # do your stuff here for regular file