rank vote url
39 502 134 633 url

在Python中列出目录中的所有文件

怎么样用Python列出一个目录的所有文件并且存进一个列表?


os.listdir()可以获得一个目录中所有文件或者子目录.

如果你只想要文件的话,你也可以用os.path把其他的过滤掉:

  1. from os import listdir
  2. from os.path import isfile, join
  3. onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]

或者你可以用os.walk(),它遍历每个目录将会返回两个列表(一个文件列表,一个目录列表),如果你想要顶层目录只需要在第一次迭代后break一下即可.

  1. from os import walk
  2. f = []
  3. for (dirpath, dirnames, filenames) in walk(mypath):
  4. f.extend(filenames)
  5. break

最后,如果你想增加列表可以像上面那样用.extend()或者:

  1. >>> q = [1,2,3]
  2. >>> w = [4,5,6]
  3. >>> q = q + w
  4. >>> q
  5. [1,2,3,4,5,6]

我个人更喜欢.extend()