Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import csv
- import json
- from operator import itemgetter
- def read_cats(filename):
- file = open(filename, 'r', encoding='UTF-8')
- categories = list(csv.DictReader(file, fieldnames=('id', 'name', 'filename'), delimiter=';', quotechar='"'))
- file.close()
- for category in categories: del(category['filename'])
- return sorted(categories, key=itemgetter('name'))
- def get_subcats(id, dirs):
- subcats = {}
- for dirt in dirs:
- if(os.path.isfile(dirt+'/category_'+id+'.csv')):
- file = open(dirt+'/category_'+id+'.csv', 'r', encoding='UTF-8')
- shares = list(csv.DictReader(file, fieldnames=('subcat_id', 'subcat_name', 'share_id', 'share_hash', 'share_name', 'share_size'), delimiter=';', quotechar='"'))
- file.close()
- for share in shares: subcats[share['subcat_id']] = share['subcat_name']
- result = []
- for key in subcats: result.append({
- 'id': int(key),
- 'name': subcats[key]
- })
- return sorted(result, key=itemgetter('name'))
- cats = read_cats('category_info.csv')
- dirs = list(filter(os.path.isdir, os.listdir(os.getcwd())))
- for cat in cats: cat['subcats'] = get_subcats(cat['id'], dirs)
- if(os.path.isfile('cats_subcats.json')): os.remove('cats_subcats.json')
- outfile = open('cats_subcats.json', 'w', encoding='UTF-8')
- outfile.write(json.dumps(cats, indent=4, sort_keys=True))
- outfile.close()
Advertisement
Add Comment
Please, Sign In to add comment