use*_*461 232
import os
os.listdir("path") # returns list
Run Code Online (Sandbox Code Playgroud)
Tre*_*ner 48
一种方式:
import os
os.listdir("/home/username/www/")
Run Code Online (Sandbox Code Playgroud)
glob.glob("/home/username/www/*")
Run Code Online (Sandbox Code Playgroud)
上述glob.glob
方法不会列出隐藏文件.
Mar*_*nen 35
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)
Run Code Online (Sandbox Code Playgroud)
在 Python 3.4+ 中,您可以使用新pathlib
包:
from pathlib import Path
for path in Path('.').iterdir():
print(path)
Run Code Online (Sandbox Code Playgroud)
Path.iterdir()
返回一个迭代器,它可以很容易地变成list
:
contents = list(Path('.').iterdir())
Run Code Online (Sandbox Code Playgroud)
从 Python 3.5 开始,您可以使用os.scandir
.
不同之处在于它返回文件条目而不是名称。在某些操作系统(例如 Windows)上,这意味着您不必os.path.isdir/file
知道它是否是文件,并且这可以节省 CPU 时间,因为stat
在 Windows 中扫描 dir 时已经完成了:
列出目录并打印大于max_value
字节的文件的示例:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
Run Code Online (Sandbox Code Playgroud)
(在这里阅读我的基于性能的广泛答案)
归档时间: |
|
查看次数: |
135507 次 |
最近记录: |