В Python я хочу перечислить все файлы в наборе каталогов. Лучшее, что я хотел бы получить - это список. Но самое большее, мне удалось составить вложенный список:
pics = os.path.expanduser('~/Pictures')
all_pics = [(d, os.listdir(d)) for d in os.listdir(pics)]
результат:
[('folder1', ['file1', 'file2', ...]), ('folder2', ['file1', ...]), ...]
что я хочу:
[('folder1' 'file1'), ('folder1', 'file2'), ..., ('folder2', 'file1'), ...]
То, что я хотел бы получить, - это простой простой список, неважно, что (может быть из кортежей), просто чтобы он не имел вложенных объектов, и мне не нужны вложенные циклы в коде, который его анализирует .
Как я могу сделать это со списками? Это дает мне продукт из двух наборов (имена и имена файлов), что неверно:
[(d, f) for f in os.listdir(os.path.join(pics, d)) for d in os.listdir(pics)]