2016-07-18 7 views
0

В настоящее время я использую os.walk, чтобы перечислять только каталоги в данной папке. Однако мне нужен абсолютный путь для каждого перечисленного каталога.python - Список только каталогов, вставить абсолютный путь

Моя строка кода:

folder_path = '/Users/username/Desktop/T' 

array2 = next(os.walk(folder_path))[1] 

print(array2) 

Он выводит:

['T1', 'T2', 'T3']

Как я могу получить абсолютный путь каждого каталога?

В результате я ищу будет:

['/Users/username/Desktop/T/T1', '/Users/username/Desktop/T/T2', '/Users/username/Desktop/T/T3']

+0

использовать os.path.abspath (имя файла), чтобы получить абсолютный путь –

+0

его 'os.cwd' на самом деле его рабочий стол я угадываю ... –

ответ

0

я объединил os.path.abspath и os.path.join:

folder_path = '/Users/username/Desktop/T' 

array2 = next(os.walk(folder_path))[1] 
array3 = [] 

print(array2) 
# ['T1', 'T2', 'T3'] 

for local_folder in array2: 
    array3.append(os.path.abspath(os.path.join(folder_path, local_folder))) 

print(array3) 
# ['/Users/username/Desktop/T/T1', '/Users/username/Desktop/T/T2', '/Users/username/Desktop/T/T3'] 
2
for current,dirs,files in os.walk(...): 
    for folder in dirs: 
     print os.path.abspath(os.path.join(current,folder)) 

, если вы просто хотите, каталоги, в T

from os import listdir 
from os.path import isdir,join as pjoin 
root = "/Users/username/Desktop/T" 
print [pjoin(root,p) for p in listdir(root) if isdir(pjoin(root,p))] 
+0

Это перечисляет абсолютный путь, но для всех подпапок и файлов, находящихся в 'folderpath', но мне это нужно только для папок с глубины, на которой я есть (только в папке pathpath). Даже у 'T1' есть файлы и подпапки, мне нужен абсолютный путь' T1'. – Lee

0

Попробуйте это:

 

    for o in array2: 
     print os.path.abspath(o) 
 
+0

Здесь перечислены папки с абсолютным путем для запуска скрипта ('/ Users/username/Desktop/script.py'), а не абсолютный путь из каталога' folder_path' ==> '/ Users/username/Desktop/T1', когда это должно быть '/ Users/username/Desktop/T/T1', так как мой' T1' находится внутри папки 'T'. – Lee

Смежные вопросы