2010-05-03 61 views

回答

156
import os 
os.listdir("path") # returns list 
14

glob.globos.listdir会这样做。

+0

'import glob' ENTER'glob.glob(r'c:\ users')'ENTER似乎只返回'['c:\\ users']'。这是为什么?我想使用glob.glob,因为正如其他用户指出的那样,它应该会返回目录的内容,同时也会忽略隐藏的文件。这个很重要。 – Musixauce3000 2016-04-14 19:49:55

9

os module处理所有的东西。

os.listdir(path)

返回包含在由路径给出的目录中的条目名称的列表。 该列表以任意顺序排列。它不包括特殊条目''。'和 '..',即使它们存在于目录中。

可用性:Unix,Windows。

36

One way

import os 
os.listdir("/home/username/www/") 

Another way

glob.glob("/home/username/www/*") 

Examples found here

上面的glob.glob方法不会列出隐藏文件。

import os 
start_path = '.' # current directory 
for path,dirs,files in os.walk(start_path): 
    for filename in files: 
     print os.path.join(path,filename) 
+0

glob.glob在与glob.glob(“/ home/username/www /.*”)一起使用时会列出隐藏文件(我认为你的意思是Unix文件系统环境中的'.XYZ'文件)? – 2012-08-03 17:48:58

+0

是的,我的意思是以点开头的文件。您提供的示例将用于匹配隐藏文件(仅隐藏文件)。 – 2012-08-04 19:10:49

+0

我刚刚导入了glob并使用了glob.glob(r'c:\ users'),但它只返回了'['c:\\ users']' – Musixauce3000 2016-04-14 19:43:19

26

os.walk可根据需要递归使用。另一个是os.walk

def print_directory_contents(sPath): 
     import os          
     for sChild in os.listdir(sPath):     
      sChildPath = os.path.join(sPath,sChild) 
      if os.path.isdir(sChildPath): 
       print_directory_contents(sChildPath) 
      else: 
       print(sChildPath) 
1

下面的代码将列出目录和目录中的文件:

相关问题