应该不难,但我脑子有问题。
glob.glob或os.listdir可以做到。
glob.glob
os.listdir
import os os.listdir("path") # returns list
os模块处理所有这些东西。
os
os.listdir(path) 返回一个包含path指定目录中条目名称的列表。 这个列表的顺序是任意的。它不包括特殊分录。”, “. .'即使它们存在于目录中 可用性:Unix, Windows。
os.listdir(path)
返回一个包含path指定目录中条目名称的列表。 这个列表的顺序是任意的。它不包括特殊分录。”, “. .'即使它们存在于目录中
可用性:Unix, Windows。
一个方法:
import os os.listdir("/home/username/www/")
另一种方式:
glob.glob("/home/username/www/*")
这里有一些例子。
上面的glob.glob方法不会列出隐藏文件。
自从我最初在几年前回答这个问题以来,pathlib已被添加到Python中。现在我喜欢的列出目录的方法通常涉及到Path对象上的iterdir方法:
Path
iterdir
from pathlib import Path print(*Path("/home/username/www/").iterdir(), sep="\n")
如果你需要递归,可以使用os.walk:
os.walk
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)
下面的代码将列出目录和目录下的文件。另一个是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)
在Python 3.4+中,你可以使用新的pathlib包:
pathlib
from pathlib import Path for path in Path('.').iterdir(): print(path)
Path.iterdir()返回一个迭代器,它可以很容易地转换为list:
Path.iterdir()
list
contents = list(Path('.').iterdir())
从Python 3.5开始,你可以使用os.scandir。
os.scandir
区别在于它返回文件条目而不是名称。在windows等操作系统上,这意味着你不需要os.path.isdir/file来知道它是否是一个文件,这节省了CPU时间,因为在windows中扫描dir时已经完成了stat:
os.path.isdir/file
stat
列出目录并打印大于max_value字节的文件:
max_value
for dentry in os.scandir("/path/to/dir"): if dentry.stat().st_size > max_value: print("{} is biiiig".format(dentry.name))
(阅读我广泛的基于性能的答案在这里)