如何从内部存储中获取所有文件夹名称并将其显示在文本字段中?

时间:2018-07-21 10:45:32

标签: android python python-3.x kivy kivy-language

我要做的是从特定位置查看文本字段中的所有文件夹名称。例如,给定的数据路径是-

android/data/

在这里,在数据路径中,我们有一些文件夹,例如com.facebook.katanacom.android.browsercom.android.calendar等。现在我要做的是在文本中显示所有文件夹名称,领域。有什么办法吗?

3 个答案:

答案 0 :(得分:2)

类似这样的东西:

import os
p = "android/data/com.something"
file = os.path.basename(p)

文件现在包含:'com.something' 然后将文件分配给您的文本字段变量。例如:

在您的python代码中:

self.my-text-field.text = file

并在您的kv文件中:

my-text-field:my-text-field
TextInput:
    id: my-text-field

答案 1 :(得分:1)

您可以使用python中的os.path模块:

import os

path = 'android/data/com.something'

os.path.split(path)[-1]

返回路径结构的最后一个元素:

'com.something'

编辑: 如果您需要数据路径的多个部分,请在/处进行拆分。

这将返回所有路径元素的列表。如果要查找具有共享模式的多个元素,则可以使用Regex查找这些元素。在您的示例情况下:

import re

path = 'android/data/com.something/com.facebook/com.skype'

split_path = path.split('/')

elements = [element for element in split_path if re.match(\A['com.'], element)]

输出:

['com.something', 'com.facebook', 'com.skype']

此处的re.match接受以com.开头的每个元素。当然,您可以根据需要修改正则表达式。

答案 2 :(得分:0)

尝试这样做 如果使用相对路径,则需要使用第二行。否则跳过它 File file = new File(filename); file = new File(file.getAbsolutePath()); String directory = file.getParent(); File dirAsFile = file.getParentFile();