Игнорировать скрытые файлы при рекурсивном сканировании каталогов - PullRequest
0 голосов
/ 16 января 2019

Как игнорировать скрытые файлы при рекурсивном обходе каталогов. Моя файловая структура имеет следующий тип:

7_jan
├── 7_jan_25_cropped
│   ├── 1.tiff
|
│       
│   
├── 7_jan_50_cropped
│   ├── 1.tiff
│   ├── 10.tiff
│   ├── 11.tiff
│   ├── 12.tiff
│   ├── 13.tiff
│   ├── 14.tiff
│
└── 7_jan_75_cropped
    ├── 1.tiff
    ├── 10.tiff
    ├── 11.tiff
    ├── 12.tiff

Я рекурсивно сохраняю каждый путь к файлу, чтобы потом мог работать с ними, но в то же время файл .DS_Store также сохраняется, который я не хочу хранить. Как это убрать?

folders = []
files = []
rec_folders = []
for entry in os.scandir('/Users/swastik/csre/dataset'):
    if entry.is_dir():
        folders.append(entry.path)
        for recentry in os.scandir(entry.path):
            if not recentry.path.startswith('.'):
                rec_folders.append(recentry.path)
    elif entry.is_file():
        files.append(entry.path)
print('Folders:')
print(folders)
print('Further files:')
print(rec_folders)

output-

 Folders:
 ['/Users/swastik/csre/dataset/7_jan']
 Further folders:
 ['/Users/swastik/csre/dataset/7_jan/7_jan_75_cropped', 
  '/Users/swastik/csre/dataset/7_jan/.DS_Store', 
  '/Users/swastik/csre/dataset/7_jan/7_jan_50_cropped', 
  '/Users/swastik/csre/dataset/7_jan/7_jan_25_cropped']

Здесь также хранится файл .DS_Store, который мне не нужен.

1 Ответ

0 голосов
/ 16 января 2019

Вы можете просто заменить if not recentry.path.startswith('.'): на if not recentry.name.startswith('.'):, чтобы он игнорировал ваш файл .DS_Store.

...