1、IO:输入输出流
A、读文件
# r:读,若文件不存在报错IOError f = open('c:/1.txt','r') # 读取文件内容,返回字符串 f.read() # 关闭文件 f.close() # 捕获异常 # r:用ASCLL编码方式 rb:用二进制方式 try: f = open('c:/1.txt','r') # f = open('c:/1.txt','r','gbk') 指定编码 print r.read() finally: if f: f.close() # 简洁,用with with open('c:/1.txt','r') as f: print f.read() # 文件过大,反复调用read(size) f.read(10) #用每行读取的方式 for line in f.readlines(): print line.strip()
B、写文件
# w wb with open('c:/1.txt', 'w') as f: f.write('Hello, world!')
2、操作文件与目录
# os模块 import os # 操作系统名称 POSIX:linux\unix\mac;nt:window os.name # 环境变量 os.environ # 具体 某变量 os.getenv('path') # 查看绝对路径 os.path.abspath('.') # 创建目录 dir,使用join 连接目录 os.path.join('c:/','dir') # c:/dir os.mkdir('c:/dir') # 删除目录 os.rmdir('c:/dir') # 拆分文件与目录 os.path.split('c:/1.txt') # ('c:/','1.txt') # 拆分文件后缀 os.path.splitext('c:/1.txt') # ('c:/1','txt') # 文件重命名 os.rename('1.txt','1.py') # 产出文件 os.remove('1.py')
3、序列化
# 引用模块 CPickle用C语言写的快,pickle用Python写的 try: import cPickle as pickle except ImportError: import pickle # 序列化 d = '123' pickle.dumps(d) # 序列化成一个字符串 # 序列化,保存文件 f = open('c:/1.py','wb') pickle.dump(d,f) # 反序列化,读文件 f = open('c:/1.py','rb') d = pickle.load(f) f.close()
4、JSON
A:Python集合与json相互转换
# 传输速度快 # pythonx对象转json import json d = {'a':1,'b',2} # dumps() 转为json字符串;dump()可以直接将转为的字符串存入文件中 json.dumps(d) # json标准字符串 '{"a":1,"b":2}' # json转Python对象 s = '{"a":1,"b":2}' # loads() :字符串转为对象;load() 将文件中的字符串读出,转为Python对象 json.loads(s); # {'a':1,'b',2}
B:类与json相互转换
#coding=utf-8 class Student (object): def __init__(self,id,name): self.id = id self.name = name class User(object): def __init__(self,id,name,age): self.id = id self.name = name self.age = age def classTojson(self): return { 'id':self.id, 'name':self.name } def StrToStudent(s): return Student(s['id'],s['name']) if __name__ == '__main__': import json s = Student(1,'name') # 可以自己定义 print json.dumps(s,default = classTojson) # {"id":1,"name":"name"} print '-----------------------------' # json字符串转为对象 str_stu = '{"id":1,"name":"name"}' stu = json.loads(str_stu,object_hook = StrToStudent) print stu.id,' --',stu.name print '-----------------------------' u = User(1,'user',12) # 可以调用本身带有的方法 print json.dumps(u,default = lambda obj:obj.__dict__) # {"age":12,"is":1,"name":"name"}
相关推荐
例程点亮6个灯,自己可以根据需要修改 IO驱动简单易懂,使用STM32F103C8T6最小系统板 驱动WS2812需要的实现纳秒级别的电平翻转,像一般主频较低的MCU很难实现这种级别的电平翻转。我在这里使用的MCU是STM32F103系列...
用STM32VET6 的IO口模拟数据总线访问三星的NANDFLASH K9F1208.目前网上的相关资料比较少,多数为直接通过FSMC访问。少数的几个模拟IO的资料大都只能读出ID而不能正常读写。 本程序包括page,block,擦除与读写,在...
STM32F103ZET6是一款广泛应用的基于ARM Cortex-M3内核的微控制器,具有丰富的外设接口和高性能。在实际项目中,有时会遇到串口资源不足的情况,这时就需要通过软件手段来模拟串口通信。本文将详细探讨如何使用STM32...
利用单片机的IO口直接驱动断码屏 单片机是一种微型计算机,它的出现极大地推动了电子技术的发展。单片机的IO口是它的一个重要组成部分,通过IO口,单片机可以与外部设备进行交互和通信。在本文中,我们将重点介绍...
io口配置: 基础: KEY: PB8-KEY1 PB9-KEY2 LED: PC14-LED_R PC15-LED_G USART2=串口: PA2-TX PA3-RX BH1750: 3.3V GND PB6-SDA PB7-SCL //(不用)PB5-ADD 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 ...
【作品名称】:基于w5500官方库ioLibrary_Driver,在STM32F103RC上实现了mqtt的功能 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 ...
16位AD芯片,基于STM32的ADC8562
根据提供的文件信息,我们可以提取并总结出关于ATEQ F6-IO的相关知识点,主要包括接口示意图、PLC在PNP模式下的连接方式以及程序选择扩展接头等方面的内容。 ### ATEQ F6-IO概述 ATEQ F6-IO是一款用于特定应用场合...
标题中的“IO6下载软件”指的是苹果公司的iOS 6操作系统,这是一个针对iPhone、iPad和iPod touch设备的操作系统版本。iOS 6在2012年发布,带来了多项新功能和改进,例如全新的地图应用、Passbook服务以及Siri语音...
对于驱动6个LED的情况,Charlieplexing只需要3个IO口,相比于行列式驱动减少了2个IO口。对于更大的LED阵列,比如20个LED,传统方法需要9个IO口,而Charlieplexing仅需5个,节省了4个IO口。 实现Charlieplexing的...
标题"2个io 实现6个按键检测"提出了一个巧妙的解决方案,即通过复用IO口来检测多个按键,从而节省单片机的IO口资源。这种技术在资源受限的嵌入式系统中尤为重要,例如在 Arduino 或者 STM32 等单片机项目中。 首先...
标题“2个IO实现6个按键”指的是通过某种技术手段,只使用2个IO端口就能够检测和处理6个按键的状态。这通常涉及到硬件和软件的结合,例如使用矩阵键盘扫描、编码器或者其他创新的电路设计。 具体来说,通过构建一个...
STM32芯片内部有很多外设,这些外设的引脚都是与IO口复用的。也就是说,一个IO口如果可以复用为内置外设的功能引脚,那么当这个IO口作为内部外设使用的时候,就...本文档详细列出了STM32F407ZGT6的所有的端口AF映射表。
6. **持续集成/持续部署(CI/CD)**:PlatformIO可以与GitHub Actions、Travis CI、Jenkins等服务集成,实现自动化测试和部署。 在这个资源包中,`.platformio`文件夹包含了离线安装PlatformIO所需的所有组件,包括...
6. **应用实例**:展示 RapidIO 在无线通信、军事、航空、视频处理等领域的实际应用案例。 通过学习这本书,读者不仅可以了解 RapidIO 协议的基本原理,还能掌握如何在实际项目中运用这些知识。对于那些需要处理高...
首先,传统的按键扫描方法通常采用行扫描和列检测的方式,例如用3个IO口作为行扫描,2个IO口作为列检测,总共可以扫描6个按键(2*3=6)。然而,这种基本方法并没有充分利用IO口的潜力。通过一些创新设计,我们可以...
在本文中,我们将深入探讨如何使用Visual Studio Code (VSCode)、PlatformIO和HAL库来开发基于STM32F407ZGT6的嵌入式项目。STM32F407ZGT6是一款高性能的微控制器,属于STMicroelectronics的ARM Cortex-M4系列,广泛...
6. **房间和频道**:Socket.IO还支持将客户端分组到“房间”或“频道”,这样可以方便地向一组特定的客户端发送消息,而不需要广播给所有人。 在实际项目中,Socket.IO可以应用于实时聊天应用、在线游戏、股票行情...
6. **测试与调试**:配置完成后,进行全面的功能测试,验证PLC与IO-Link从站设备的通信是否正常,以及设备参数是否按预期工作。调试过程中,如有问题,可以通过IO-Link诊断信息快速定位问题原因。 基恩士的IO-Link...
6. **API接口**:draw.io提供了丰富的API,允许开发者自定义功能,比如添加新的图形元素、扩展编辑功能等,这为开发具有特定需求的绘图应用提供了可能。 7. **导入/导出功能**:源码中包含了各种导入导出模块,如...