吉吉于

【Python】遍历文件夹生成json格式数据

今天下午想研究django,又想大致了解文件目录结构,一直没有来得及细看,便有了想刨根问底的冲动。

用dos的tree来生成django的目录固然方便,但是篇幅太长,看起来很累。

于是想用d3.js来生成可视化的界面。

那就折腾吧。

看了一下d3的demo,需要文件目录的json格式文件。

网上找了好多都没有遍历文件夹来生成json的,索性自己写一个吧。

demopython2

下边的测试工具为JSONeditor,百度一下就有哦

demopython

#!/usr/bin/env python
#-*- coding: utf-8 -*-
'''
author:	yuzhe
date: 2013/9/16
blog: http://lazynight.me
'''

import json
import os

root = {}
path = 'C:\Users\Flowerowl\Desktop\Django-1.5.4'

'''迭代生成目录树,用dict保存'''
def createDict(path, root):
	pathList = os.listdir(path)
	for i, item in enumerate(pathList):
		if isDir(getJoinPath(path, item)):
			path = getJoinPath(path, item)
			root[item] = {}
			createDict(path, root[item])
			path = '\\'.join(path.split('\\')[:-1])
		else:
			root[item] = item


'''合并路径和目录,返回完整路径'''
def getJoinPath(path, item):
	return os.path.join(path, item)


'''判断是否为目录'''
def isDir(path):
	if os.path.isdir(path):
		return True
	return False

'''返回json格式数据'''
def getJson(root):
	return json.dumps(root)

createDict(path, root)
fjson = getJson(root)
fp = open("django.html",'w')
fp.write(str(fjson))
fp.close()

项目地址https://github.com/Flowerowl/pyfolderjson

转载请注明:于哲的博客 » 【Python】遍历文件夹生成json格式数据