问题:如何在Python中列出目录的内容?
不能很难,但是我有一个精神障碍。
回答 0
import os
os.listdir("path") # returns list
回答 1
单程:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
glob.glob
上面的方法不会列出隐藏文件。
自从几年前我最初回答这个问题以来,pathlib已添加到Python。我现在列出目录的首选方法通常涉及对象的iterdir
方法Path
:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
回答 2
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)
回答 3
glob.glob
或os.listdir
将会做到。
回答 4
该os
模块处理所有这些东西。
os.listdir(path)
返回一个列表,其中包含由path给出的目录中条目的名称。该列表是任意顺序的。它不包括特殊条目“。” 和“ ..”,即使它们存在于目录中。
可用性:Unix,Windows。
回答 5
在Python 3.4+中,您可以使用新pathlib
软件包:
from pathlib import Path
for path in Path('.').iterdir():
print(path)
Path.iterdir()
返回一个迭代器,可以很容易地将其变成list
:
contents = list(Path('.').iterdir())
回答 6
从Python 3.5开始,您可以使用os.scandir
。
区别在于它返回文件条目而不是名称。在某些操作系统(例如Windows)上,这意味着您不必os.path.isdir/file
知道它是否是文件,并且可以节省CPU时间,因为stat
在Windows中扫描目录时已完成此操作:
列出目录并打印大于max_value
字节的文件的示例:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(在此处阅读基于性能的详尽答案)
回答 7
下面的代码将列出目录和目录中的文件。另一个是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)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。