у меня есть структура каталогов, например, изображения включают dir_one one dir_two
dir_one не включает каталогdir_one включает 01.jpg 、 02.jpg
dir_two включает 02.jpg 、 03.jpg
dir_three включает 02.jpg 、 03.jpg 、 04.jpg
iхочу получить список о пути к каталогу, если каталог не включает 01.jpg
добавит в список, то я преобразую в файл json
import json
import os
def file_name(file_dir):
L=[]
for dirpath, dirnames, filenames in os.walk(file_dir):
for file in filenames :
if os.path.splitext(file)[1] == '.jpg':
L.append(os.path.join(dirpath, file))
return L
file_dir = 'F:\\tmp\\images'
files_list=file_name(file_dir)
item_list = set()
for item in files_list:
print(item[-6:])
index_of_dir_path = item.rfind('\\')
filter_str='01.jpg'
# if filter_str not in files_list:
if filter_str not in item:
item_list.add(item[0:index_of_dir_path])
json_data = {
"dirPath_not_include_01_jpg_file":list(item_list)
}
target_json_path='out.json'
with open(target_json_path, 'w') as f:
json_dumps = json.dumps(json_data, f, ensure_ascii=False, indent=2)
f.write(json_dumps)
я надеюсь сделать файл json как невключить путь к элементу dir_one (причина: каталог dir_one включает 01.jpg)
{
"dirPath_not_include_01_jpg_file": [
"F:\\tmp\\images\\dir_two\\dir_three",
"F:\\tmp\\images\\dir_four",
"F:\\tmp\\images\\dir_five",
"F:\\tmp\\images\\dir_two"
]
}
, но не код будет включать путь к элементу dir_one
{
"dirPath_not_include_01_jpg_file": [
"F:\\tmp\\images\\dir_two\\dir_three",
"F:\\tmp\\images\\dir_one",
"F:\\tmp\\images\\dir_four",
"F:\\tmp\\images\\dir_five",
"F:\\tmp\\images\\dir_two"
]
}