python3将文件(从文件夹和子文件夹)转换为特定格式的json文件(项目包括文件夹名和文件名)
python3将文件(从文件夹和子文件夹)转换为特定格式的json文件(项目包括文件夹名和文件名) 我只能列出文件和目录python3将文件(从文件夹和子文件夹)转换为特定格式的json文件(项目包括文件夹名和文件名),python,json,file,directory,Python,Json,File,Directory,python3将文件(从文件夹和子文件夹)转换为特定格式的json文件(项目包括文件夹名和文件名) 我只能列出文件和目录 from os import walk path = "F:\\stack\\sample" for root, dirs, files in walk(path): print("folder:", dirs) print("file:", files) print("\n") 下面是我的文件夹和文件结构 F:\stack\sample\EXA18902962
from os import walk
path = "F:\\stack\\sample"
for root, dirs, files in walk(path):
print("folder:", dirs)
print("file:", files)
print("\n")
下面是我的文件夹和文件结构
F:\stack\sample\EXA18902962\IM-2613-0001.jpg
F:\stack\sample\EXA18902962\IM-2613-0002.jpg
F:\stack\sample\EXA18902962\IM-2613-0003.jpg
F:\stack\sample\EXA18902962\IM-2613-0004.jpg
F:\stack\sample\EXA18902962\IM-2613-0005.jpg
F:\stack\sample\EXA18B01363\IM-2293-0001.jpg
F:\stack\sample\EXA18B01363\IM-2293-0002.jpg
F:\stack\sample\EXA18B01363\IM-2293-0003.jpg
F:\stack\sample\EXA18C05030\IM-0960-0001.jpg
F:\stack\sample\EXA18C05030\IM-0960-0002.jpg
F:\stack\sample\EXA18C05030\IM-0960-0003.jpg
F:\stack\sample\EXA18C05030\IM-0960-0004.jpg
F:\stack\sample\EXA18C05030\IM-0960-0005.jpg
F:\stack\sample\EXA18C05030\IM-0960-0006.jpg
F:\stack\sample\EXA18C05030\IM-0960-0007.jpg
F:\stack\sample\EXA18C05030\IM-0960-0008.jpg
希望输出一个类似sample.json的json文件,如下所示
{
"EXA18902962":[
"IM-2613-0001.jpg",
"IM-2613-0002.jpg",
"IM-2613-0003.jpg",
"IM-2613-0004.jpg",
"IM-2613-0005.jpg"
],
"EXA18B01363":[
"IM-2293-0001.jpg",
"IM-2293-0002.jpg",
"IM-2293-0003.jpg"
],
"EXA18C05030":[
"IM-0960-0001.jpg",
"IM-0960-0002.jpg",
"IM-0960-0003.jpg",
"IM-0960-0004.jpg",
"IM-0960-0005.jpg",
"IM-0960-0006.jpg",
"IM-0960-0007.jpg",
"IM-0960-0008.jpg"
]
}
稳健的方法:
from collections import defaultdict
from os import path
import glob
import json
base_path = "F:\\stack\\sample"
d = defaultdict(list)
for file in glob.iglob(path.join(base_path, '*/*.jpg'), recursive=True):
d[path.basename(path.dirname(file))].append(path.basename(file))
print(json.dumps(d))
# use json.dump to write json data into particular file