读取骨骼数据相关的多个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
}
}

读取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)

参考: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
}

代码为

# -- 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)

根据以上方法,将一个文件夹中多个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个数存储一次,文件夹要有规则的生成

python部分的更多相关文章

  1. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  2. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  3. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  4. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  5. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  6. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

  7. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

  8. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

  9. python开发编译器

    引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...

  10. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

随机推荐

  1. c7---函数

    // // main.c // 函数练习 // // Created by xiaomage on 15/6/7. // Copyright (c) 2015年 xiaomage. All right ...

  2. Vmware 安装samba之二

    安装samba:sudo apt-get install samba 安装smbclient:sudo apt-get install 安装smbfs:sudo apt-get smbfs 2.修改配 ...

  3. Python 递归和二分查找

    # 二分查找l1 = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88] def two_search( ...

  4. Linux top命令简解

    简介: top 命令是最流行的性能监视工具之一,它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处. top 界面分为两个部份,光标上面部份显示关于系统 ...

  5. .net 三大核心对象

    .net 三大核心对象 HttpRequest 现在总算轮到第一个核心对象出场了.MSDN给它作了一个简短的解释:“使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值.”这个解 ...

  6. Servlet的生命周期和Jsp的生命周期

    Servlet的生命周期: 1)构造方法(第1次访问) 2)init方法(第1次访问) 3)service方法 4)destroy方法 Jsp的生命周期 1)翻译: jsp->java文件 2) ...

  7. HDU 5289 Assignment [优先队列 贪心]

    HDU 5289 - Assignment http://acm.hdu.edu.cn/showproblem.php?pid=5289 Tom owns a company and he is th ...

  8. Kendo UI grid 表格数据更新

    1.整行数据更新 //获取grid表格var table0 = $(updateTableID).data("kendoGrid");//删除第一条 var lastTableDa ...

  9. 【转】Retina 屏幕下,网页图片的显示兼容

    感谢 Apple,带来了 Retina 屏幕的革命,让我们可以在电子显示屏上享受到印刷级的分辨率.由于分辨率的提升,网页中的文字.Flash 和 SVG 内容显示得比原来更加精细,但网页中的图片却变得 ...

  10. v-model指令后面跟的参数(number、lazy、debounce)

    1. number 想将用户的输入自动转换为Number类型(如果原值的转换结果为NaN, 则返回原值) 2. lazy 在默认情况下, v-model在input事件中同步输入框的值和数据, 我们可 ...