我尝试了一个python代码来搜索我的电脑中主文件夹内的所有目录,代码是:
[x[0] for x in os.walk(dir)]
我在here找到了。
好吧,现在我有兴趣编写一个类似的代码,能够搜索并列出我的电脑中所有可用的目录而不指定主目录'dir'(假设我不知道我是否在C:\,在E中: \,在C:\ python2.7 \等......)。对于'available',我指的是所有可以打开/读取/修改的目录,并且可以通过我的帐户访问(具有特定的权限,假设,我不知道)。
你有一些工作代码来执行我的要求吗?
谢谢
如果您使用的是Python 3,则可以访问pathlib.Path
您必须从某个目录开始,例如您当前的工作目录。从那里,您可以获得文件系统的根目录(在Windows下的* n * x,/
下的letter:\
):
import os
import pathlib
root = str(pathlib.Path(os.getcwd()).absolute().root)
all_dirs = [x[0] for x in os.walk(root)]
在Windows上的Python 2.7中,您可以使用os.path.splitdrive
将os.getcwd()
拆分为驱动器号和路径,然后从那里开始。
import os
root, path = os.path.splitdrive(os.getcwd())
all_dirs = [x[0] for x in os.walk(root + "/")]
请注意,我使用/
而不是\
:Windows也支持使用正斜杠,并且像这样它也适用于其他系统(因为root
将是一个空字符串)。