仅列出当前目录中的文件

问题:

在Python中,我只想列出当前目录中的所有文件。我不希望从任何子目录或父项列出文件。
似乎有类似的解决方案,但它们似乎不适合我。以下是我的代码段:

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

我们假设我的目录中有2个文件,holygrail.py和tim。我也有一个文件夹,它包含两个文件 – 我们称之为Arthur和Lancelot – 里面。当我运行脚本,这是我得到的:

holygrail.py
Tim
Arthur
Lancelot

我很高兴与holygrail.py和蒂姆。但是这两个文件,亚瑟和兰斯洛特,我不想上市。

回答:

只需使用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不是一个完整的路径,而是相对于当前的目录。
因此,为了过滤另一个目录,请执行os.path.isfile(os.path.join(somedir, f))
 (Thanks Causality for the hint)

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: List files in ONLY the current directory

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 6 = 1