如何在递归遍历目录时忽略隐藏文件。 我的文件结构为以下类型:
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)
输出-
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
文件,我不需要。
答案 0 :(得分:1)
您可以将if not recentry.path.startswith('.'):
替换为if not recentry.name.startswith('.'):
,这样它将忽略您的.DS_Store
文件。