c语言ord函数在哪个头文件里,第五章 文件的输入和输出
作者:村里有个男孩叫小方
1 实验目的
掌握python 操作文件的内建函数(open read write close)
2 实验目标
完成对数据的分类(有一段json数据包的.txt数据,里面有电梯的实时运行数据,对这些电梯数据进行分类)
3 实验环境
win7操作系统
python2.7
4 实验步骤
4.1 了解内建函数
open() 打开文件
read() 输入
readline()输入一行
seek()文件内移动
write()输出
close()关闭文件
4.2 数据分析
通过我们的学习项目熟悉这些函数,具体如下:
1.分析如下数据
{
"croom_id": 3,
"device_id": "38002D000B51363530393030",
"date_dev": 1536748392,
"fault_type": 0,
"event_type": 0,
"action_status": 0,
"code": 0,
"lift_real_time": {
"floor_rfid": 20,
"floor": 120,
"distance": 21.959999,
"car_direction": 2,
"car_status": 1,
"service_mode": 1,
"online_status": 0,
"door_status": true,
"door_zone": true,
"passenger_status": true,
"speed": 1.573424,
"electric_current_a": 58.200001,
"electric_current_b": 66,
"electric_current_c": 64.019997,
"voltage_a": 224.600006,
"voltage_b": 224.600006,
"voltage_c": 224.699997,
"temperature_a": 37.200001,
"temperature_b": 37.799999,
"temperature_c": 37.400002,
"temperature_d": 37.799999,
"temperature_room": 37.799999,
"w": 300.600006
},
"mcuurlist": {
"flat_cnt": 0,
"car_safe": 0,
"car_ovh": 0,
"car_door": 0,
"car_motor": 0,
"car_flayer": 0,
"car_cpbutton": 0,
"car_haspeo": 1,
"room_safe": 0,
"room_em": 1,
"room_ovh": 0,
"room_hdoor": 0,
"room_cardoor": 0,
"room_firectr": 0,
"car_time": 1536748391,
"room_time": 1536748392,
"max_speed": 1.573424,
"self_en": 0,
"self_ex": 0,
"sensor_e": 0
},
"acclist": {
"accx": 8.036133,
"accy": 0.020508,
"accz": 1.014648,
"palx": -11.108398,
"paly": 17.639160,
"palz": 26.000977,
"roll": 0,
"pitch": 0,
"yall": 0,
"temp": 48.930000,
"press": 99908,
"car_speed": -1.087188,
"car_height": 23.790001
},
"sign": "15504059f949afe0c28c531bbfb5095e"
}
------------------cloud_message_recv_cb----------------
HTTP POST success code = 1 carid = 38002D000B51363530393030
--------- Http Response /lift/deviceData/addLiftRealTimeData.do ---------
73:{"code":1,"msg":"鎿嶄綔鎴愬姛","data":{"id":"38002D000B51363530393030"}}U
------------------cloud_message_recv_cb----------------
=========================== JSON [1446] ===========================
{
"croom_id": 4,
"device_id": "320027001847373032303434",
"date_dev": 1536748392,
"fault_type": 0,
"event_type": 0,
"action_status": 0,
"code": 0,
"lift_real_time": {
"floor_rfid": 13,
"floor": 120,
"distance": 45.591000,
"car_direction": 0,
"car_status": 1,
"service_mode": 1,
"online_status": 0,
"door_status": true,
"door_zone": true,
"passenger_status": true,
"speed": 0,
"electric_current_a": 58.200001,
"electric_current_b": 66,
"electric_current_c": 64.019997,
"voltage_a": 224.600006,
"voltage_b": 224.600006,
"voltage_c": 224.699997,
"temperature_a": 37.200001,
"temperature_b": 37.799999,
"temperature_c": 37.400002,
"temperature_d": 37.799999,
"temperature_room": 37.799999,
"w": 300.600006
},
"mcuurlist": {
"car_safe": 0,
"car_ovh": 0,
"car_door": 0,
"car_motor": 0,
"car_flayer": 1,
"car_cpbutton": 0,
"car_haspeo": 1,
"room_safe": 0,
"room_em": 1,
"room_ovh": 0,
"room_hdoor": 0,
"room_cardoor": 0,
"room_firectr": 0,
"car_time": 1536748391,
"room_time": 1536748392,
"max_speed": 0,
"self_en": 0,
"self_ex": 0,
"sensor_e": 0
},
"acclist": {
"accx": 1.059082,
"accy": -0.015137,
"accz": 1.124023,
"palx": 0.366211,
"paly": 0.549316,
"palz": 0.183105,
"roll": 0,
"pitch": 0,
"yall": 0,
"temp": 52.190000,
"press": 100211,
"car_speed": 0,
"car_height": 44.849998
},
"sign": "c127837e82cc019bcd897c993d7a57bf"
}
HTTP POST success code = 1 carid = 320027001847373032303434
--------- Http Response /lift/deviceData/addLiftRealTimeData.do ---------
73:{"code":1,"msg":"鎿嶄綔鎴愬姛","data":{"id":"320027001847373032303434"}}U
------------------cloud_message_recv_cb----------------
------------------cloud_message_recv_cb----------------
=========================== JSON [1487] ===========================
上面是一小段电梯运行时的实时数据,更多的数据存在elevatordata.txt里我们的目标是把不同的"croom_id"进行分类,数据里一共有5个croom_id,分别是12345,我们要把数据写入到新的1.txt,2.txt,3.txt,4.txt, 5.txt里面。从数据中可以看出每个数据包一共有76行(包括两个括号),所以,当我们读到括号时,就获取后面的76行,写入不通的文件当中
4.3具体实现代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import re
#以可读可写的方式打开5个文件
'''
模式 可做操作 若文件不存在 是否覆盖
r 只能读 报错 -
r+ 可读可写 报错 是
w 只能写 创建 是
w+ 可读可写 创建 是
a 只能写 创建 否,追加写
a+ 可读可写 创建 否,追加写
'''
#读取
alldata = open("elevatordata.log",'rb')
#写入
data1 = open("1.log",'a')
data2 = open("2.log",'a')
data3 = open("3.log",'a')
data4 = open("4.log",'a')
data5 = open("5.log",'a')
def str_to_hex(s):
return ' '.join([hex(ord(c)).replace('0x', '') for c in s])
Separate = 0
strdata = ""
startflag = 0
str ="{"
for data in alldata.readlines():
if data[0] == "{":
startflag = 1
if startflag == 1:
if data[0] != "}":
if "\"croom_id\"" in data:
try :
#利用正则表达式获取(正则表达式以后会讲)
num = re.findall(r'(\w*[0-9]+)\w*',data) #数据有时会发生错误
Separate = int(num[0])
except IndexError:
pass
strdata = strdata + data
else :
strdata = strdata + data
startflag = 0
#print strdata #获取到所有的str了
if Separate == 1:
data1.write(strdata)
if Separate == 2:
data2.write(strdata)
if Separate == 3:
data3.write(strdata)
if Separate == 4:
data4.write(strdata)
if Separate == 5:
data5.write(strdata)
strdata = ""
alldata.close()
data1.close()
data2.close()
data3.close()
data4.close()
data4.close()
福利时间 :关注微信公众号:chengxuyuanxiaofang
获取免费的python嵌入式java等各类资料
有什么问题欢迎留言
微信公众号
c语言ord函数在哪个头文件里,第五章 文件的输入和输出相关推荐
- 第五章 文件和目录管理
第五章 文件和目录管理 第一节 目录创建和管理 mkdir 参 数 : -p 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录 -v或--verbose 显示执行时的详细信息 ...
- Objective-C学习笔记第十五章文件加载与保存
第十五章文件加载与保存 Cocoa提供了Core Data,他能在后台处理所有文件内容 Cocoa提供了两个通用的文件处理类:属性列表和对象编码 一.属性列表类 在Cocoa中,有一类名为属性列表的对 ...
- c语言实现将两个文件复制到一个文件里_Python中复制文件的9种方法
作者:小小程序员 链接:https://zhuanlan.zhihu.com/p/91277888 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. Python 中有 ...
- Linux鸟哥的私房菜(第五章 文件权限以及目录配置)
Linux鸟哥的私房菜 使用组和群组 User group others 文件属性 -rw-r–r-- 1 -(档案类型)rwx(档案拥有者权限{可读可写可执行)rwx(群组权限可读可写可执行)-其他 ...
- 《Python语言程序设计》王恺 机械工业出版社 第五章课后习题答案
第五章 序列.集合和字典 5.8 课后习题 (1)Python 中,通过列表中的 index 方法可以根据指定值查找第一个匹配的列表元素 的位置. (2)Python 中,通过列表中的 insert ...
- C语言strstr()函数(在主字符串里查找子字符串,返回第一次找到的子字符串以及后面的字符串)
需包含头文件:C 标准库 - <string.h> 文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 char *strstr(const char *haystack, con ...
- C语言基础教程读书笔记5.2.(第五章函数和存储类2)
4.作用域规则 标示符只能在说明或对他定义它的函数体或分程序内饰可见的,而在该函数体或分程序外则是不可见的. 举个例子: # include <stdio.h> int main() { ...
- C语言数据结构(大话数据结构——笔记3)第五章:串(字符串)
文章目录 串的定义(153) 空串 null string(153) 子串与主串(153) 串的比较(154) 串的抽象数据类型(156) 查找子串第一个实现方法(157) 串的顺序存储结构(157) ...
- PTA 《C语言程序设计(第四版)》 第五章习题【记录】
练习一 求和 int sum(int m, int n) {int s=0;for(int i = m;i<=n;i++){s = s+i;}return s; 练习二 输出较大的数 int m ...
最新文章
- 单链表的创建示意图, 显示单向链表的分析
- Kotlin入门简介
- jquery 简单日历
- 今天的我也不太清楚的即时通讯
- 在java中调用python方法
- linux安全策略加固文档_系统加固之Linux安全加固
- Shadow-插件化框架分析
- 如何刷机android手机,安卓手机如何刷机
- linux服务器离线安装python第三方库
- pid倒立摆matlab,基于MATLAB的直线一级倒立摆的PID控制研究
- 如何限制文件服务器上传文件的速度,怎么设置上传软件文件速度限制
- laravel使用scout和elasticsearch中文分词ik
- 为什么会有视频号?朋友圈还不够吗?
- java excel进度条_导出excel 用easyui显示进度条(也适用于其他框架遮罩层,进度条)...
- 【CSS】尺寸和边框、盒子模型、外边距_02
- dbo sysadmin和db_owner的区别
- NPN三极管放大原理
- 芯片封装技术——Wire Bond与Flip Chip
- Web地图服务发布及运维方案
- 嵌入式linux系统电源管理器,嵌入式Linux系统的动态电源管理技 - 嵌入式操作系统 - 电子发烧友网...
热门文章
- 无线局域网wlan是计算机网络与,什么是无线局域网(Wireless LAN, WLAN)
- Windows权限提升—溢出提权
- Adversarial Detection methods
- Laravel框架的搭建与部署教程
- Java伽马什么意思,游戏设置中的伽马值是什么意思 | 手游网游页游攻略大全
- Python3中的round函数(四舍六入五成偶)
- 模型预测控制的缺点_三电平整流器的延时补偿模型预测控制
- 诺亚方舟论坛的漫长开发历程(一)
- [DSP] Butterworth (巴特沃斯)数字滤波器设计参考
- 中标麒麟MIPS系统使用iperf