如何列出当前目录中的文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

在Python中,我只想列出当前目录中的所有文件。我不希望从任何子目录或父目录中列出文件。

确实有类似的解决方案,但它们似乎对我不起作用。下面是我的代码片段:

import os
for subdir, dirs, files in os.walk('./'):
    for file in files:
      do some stuff
      print file

假设我的当前目录中有两个文件,holygrail.py和Tim。我也有一个文件夹,里面有两个文件--让我们称它们为Arthur和Lancelot。当我运行脚本时,我得到的是:

holygrail.py
Tim
Arthur
Lancelot
提问于
用户回答回答于

就用os.listdiros.path.isfile代替os.walk...

例子:

files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
    # do something
但是,在将此应用于其他目录时要小心,如
files = [f for f in os.listdir(somedir) if os.path.isfile(f)].

这是不可行的,因为f不是完整路径,而是相对于当前dir。

用户回答回答于

你可以用os.listdir为了这个目的。如果你只想档案而不是目录,您可以使用os.path.isfile...

例子:

files = os.listdir(os.curdir)  #files and directories

files = filter(os.path.isfile, os.listdir( os.curdir ) )  # files only
files = [ f for f in os.listdir( os.curdir ) if os.path.isfile(f) ] #list comprehension version.

扫码关注云+社区