获取当前目录下所有子目录的列表并忽略没有读取权限的目录

Getting a list of all subdirectories in the current directory and ignoring directories with no reading permission

我需要一个程序来列出我存储中的所有目录。我 运行 代码作为 Android 上的 kivy apk,所以我无法更改我的代码的权限。 我已经试过了:

dir = [x[0] for x in os.walk("/storage/")]

但是每次我尝试列出一个我不允许读取的目录时,它就会停止并且不再列出任何目录,尽管我的 apk 具有 android 权限 WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE.

编辑: 我现在用

file_dir = [os.path.join(root,file) for root, dir, files in os.walk("/storage/") for file in files if os.path.splitext(file)[1].lower() in ('.jpg', '.jpeg', '.mp4')]

跳过我无法访问的所有文件夹,但显然我的存储中有损坏的文件夹。有没有办法跳过我看不懂的文件夹?

以下代码会跳过那些您因权限而无法访问的文件

 abs_file_paths=[os.path.join(root, file) for root, dir, files in os.walk(dir_to_extract) for file in files]

您可以使用 listdir:

mydir = [i for i in os.listdir('/storage/')]