python部分

读取骨骼数据相关的多个json,拼接到一起

# -- coding: utf-8 --
import os  
path = "./test" #文件夹目录  
files= os.listdir(path) #得到文件夹下的所有文件名称  
s = []  
i=0
for file in files: #遍历文件夹  
    if not os.path.isdir(file): #判断是否是文件夹,不是文件夹才打开  
        f = open(path+"/"+file); #打开文件 
        i=i+1
        print(i) 
        iter_f = iter(f); #创建迭代器  
        str = ""  
        for line in iter_f: #遍历文件,一行行遍历,读取文本  
            str = str + line  
        s.append(str) #每个文件的文本存到list中  

print(s[1]) #打印结果
print(s[2])

f=open('./f.txt','w') 
f.write(s[1])
#一次读取文件夹内的多个文件,存放在s数组内。然后可以考虑遍历s数组,每10个数存储一次,文件夹要有规则的生成

  读取json文件,并解析到其中的数据

创建json文件:

{
    "fontFamily": "微软雅黑",
    "fontSize": 12,
    "BaseSettings":{
        "font":1,
        "size":2
                   }
}
View Code

读取json文件:

import json

def loadFont():
    f = open("Settings.json", encoding='utf-8')  #设置以utf-8解码模式读取文件,encoding参数必须设置,否则默认以gbk模式读取文件,当文件中包含中文时,会报错
    setting = json.load(f)
    family = setting['BaseSettings']['size']   #注意多重结构的读取语法
    size = setting['fontSize']   
    return family

t = loadFont()

print(t)
View Code

参考:https://www.cnblogs.com/laoniubile/p/6036919.html

根据上边读取json文件的方法,将骨骼数据中body_parts部分的数据提取出来,其中骨骼数据的json格式为

{
    "version":0.1,
    "people":[
        {
            "body_parts":[
                614.318,240.562,0.840796,612.341,242.575,0.782728,540.081,244.635,0.774854,569.276,358.043,0.768752,584.981,461.723,0.867115,678.826,242.612,0.800199,661.33,352.252,0.799717,651.585,461.697,0.744037,579.118,369.762,0.561295,565.444,493.059,0.693711,571.355,618.2,0.801457,649.546,367.813,0.612515,665.162,491.085,0.734447,663.339,616.268,0.787793,600.537,224.947,0.928016,626.089,223.034,0.8756,579.144,207.338,0.719421,643.648,201.529,0.673821
            ],
            "body_mistakes":[
                
            ],
            "complete_fitness_times":0,
            "average_fitness_frequency":0.000000,
            "current_pose_type":"STAND_UP"
        }
    ],
    "width":1280,
    "height":720
}
View Code

代码为

# -- coding: utf-8 --
import json
path = "./test/Bent-over_000000000000_pose.json" #文件夹目录  

def getbody_parts():
    f = open(path, encoding='utf-8')  #设置以utf-8解码模式读取文件,encoding参数必须设置,否则默认以gbk模式读取文件,当文件中包含中文时,会报错
    data = json.load(f)
    #family = setting['BaseSettings']['size']   
    body_parts = data['people'][0]['body_parts'] 
    #注意多重结构的读取语法,在Bent-over_000000000000_pose.json中,大括号表示定义一个对象,
    #中括号表示一个数组,数组用下标的方式读取
    return body_parts

t = getbody_parts()

print(t)
View Code

 根据以上方法,将一个文件夹中多个json文件读取出来,并把每个json文件中的body_parts找到,拼接成list,输出到f.txt文件

# -- coding: utf-8 --
import os  
import json
path = "./test" #文件夹目录  
files= os.listdir(path) #得到文件夹下的所有文件名称  
s = []  
for file in files: #遍历文件夹  
    if not os.path.isdir(file): #判断是否是文件夹,不是文件夹才打开  
        f = open(path+"/"+file); #打开文件 
        data = json.load(f)
        #family = setting['BaseSettings']['size']   
        body_parts=''
        body_parts = body_parts+str(data['people'][0]['body_parts'])
        #注意多重结构的读取语法,在Bent-over_000000000000_pose.json中,大括号表示定义一个对象,
        #中括号表示一个数组,数组用下标的方式读取
        s.append(body_parts) #每个文件的文本存到list中

print(s[1]) #打印结果
print(s[2])

f=open('./f.txt','w') 
f.write(str(s))
#一次读取文件夹内的多个文件,存放在s数组内。然后可以考虑遍历s数组,每10个数存储一次,文件夹要有规则的生成
View Code

 

posted @ 2018-01-28 10:40  JarvisLau  阅读(213)  评论(0编辑  收藏  举报