Получение путей ко всем файлам в каталоге (но не абсолютный путь) в Python 3 - PullRequest
1 голос
/ 03 апреля 2020

У меня есть каталог DATA , который содержит несколько подкаталогов, и внутри каждого подкаталога есть больше каталогов и файлов.

Вот мой код:

for dirpath,subs,filenames in os.walk("/Users/.../DATA"):
   for f in filenames:
       print(os.path.abspath(os.path.join(dirpath, f)))

Результаты, которые выводит этот код, являются абсолютными каталогами (например, "/Users/.../Data/SubFile/SubFile.txt")

Я хочу получить следующие результаты (например," Data / SubFile / Subfile ") .txt ")

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Как насчет чего-то простого:

dir_path = "/Users/.../DATA"

for dirpath,subs,filenames in os.walk("/Users/.../DATA"):
   for f in filenames:
       print(os.path.abspath(os.path.join(dirpath, f))[len(dir_path):])
0 голосов
/ 03 апреля 2020

Использование os.path.commonprefix () :

common_prefix = os.path.commonprefix(["/Users/.../DATA"])
for dirpath, subs, filenames in os.walk("/Users/.../DATA"):
    for f in filenames:
        print(os.path.relpath(os.path.join(dirpath, f), common_prefix))

...