文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   with open(somefile.txt,'r') as files: do_something(files) with 语句打开文件并把值赋值到变量,之后可以对文件操作.文件在语句结束之后会自动关闭,即使异常引起也会退出.   文件模式 r   #只读模式(默认) w(>) #写模式 a (>…
对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读, 在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open frist_line = f.readline()#获取文件的第一行内容,返回的是一个list print(frist_line)#打印…
DHT11是一款有已校准数字信号输出的温湿度传感器. 精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃. 我买的封装好的模块,上边自带了上拉电阻,直接查到树莓派上即可灰.紫.蓝分别代表数据.3.3V.0V,接到树莓派的3,1,10脚,分别对应PIN8,3.3V,0V. DHT11与单片机通讯协议为单线协议(1-wire),其实单线协议蛮厉害的,一个GPIO就能实现数据的读取,但是这个协议没有同步脉冲,所以对时序要求比较高,比如DHT11对高低电平定义如下: 低电平…
GPIO库的核心功能,当然就是操作GPIO了,GPIO就是"通用输入/输出"接口,比如点亮一个LED.继电器等,或者通过iic spi 1-wire等协议,读取.写入数据,这都是GPIO的用处,可以说没有GPIO,树莓派只能当小电脑用,有了GPIO,就升级成一个控制器了.先来说说怎么操作一个数字量(高低电平). 先看代码: import wiringpi2 as gpio from wiringpi2 import GPIO gpio.wiringPiSetup() #初始化 gpio…
知识点一:Requests的详解及其基本使用方法 什么是requests库 Requests库是用Python编写的,基于urllib,采用Apache2 Licensed开源协议的HTTP库,相比urllib库,Requests库更加方便,可以节约我们大量的工作,完全满足HTTP测试需求. Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库如果你看过上篇文章关于urllib库的使用,你会发现,其实urllib还是非常不方便的…
一.安装MySQL-python # yum install -y MySQL-python 二.打开数据库连接 #!/usr/bin/python import MySQLdb conn = MySQLdb.connect(user='root',passwd='admin',host='127.0.0.1') conn.select_db('test') cur = conn.cursor() 三.操作数据库 def insertdb(): sql = 'insert into test(n…
网上的教程,一般Python用RPi.GPIO来控制树莓派的GPIO,而C/C++一般用wringpi库来操作GPIO,RPi.GPIO过于简单,很多高级功能不支持,比如i2c/SPI库等,也缺乏高精度定时等高级特性.相比之下,wiringpi则功能丰富的多,其实wringpi已经有了python绑定,可以非常简单的在python中使用这个库.鉴于网上基本没有这个库的中文说明,我一边学习,一边以做笔记的形式,写几篇关于这个库的基本使用的文章. 安装:首先安装python-pip: 我用的Arch…
wiringpi2显然也把i2c驱动带给了Python,手头上正巧有一个DS3231的模块,上边带了一个DS3231 RTC(实时时钟),与一片24C32,两个芯片均为iic总线设备,与树莓派接线如下: 也就是VCC GND SDA SCL四个脚分别接到树莓派的1(3.3v).9(0v).3(SDA.1).5(SCL.1)上,因为树莓派的I2C接口默认是关闭的,需要先编辑一下/boot/config.txt,去掉 device_tree_param=i2c_arm=on上的注释(Archlinu…
学过单片机的同学应该清楚,我们在编写传感器驱动时,需要用到高精度的定时器.延时等功能,wiringpi提供了一组函数来实现这些功能,这些函数分别是: micros() #返回当前的微秒数,这个数在调用wiringPiSetup()后被清零并重新计时 millis() #返回当前的毫秒数,同上,这个数在调用wiringPiSetup()后被清零并重新计时 delayMicroseconds() #高精度微秒延时 delay() #毫秒延时. python相对于C,一个很大的问题就是执行速度慢,所以…
一.切片 list.tuple常常截取某一段元素,截取某一段元素的操作很常用 ,所以python提供了切片功能. L=['a','b','c','d','e','f'] #取索引0,到索引3的元素,不包括索引3 print(L[0:3]) #开始索引为0可以省略 print(L[:3]) #下标1到3 print(L[1:3]) #取最后一个元素 print(L[-1]) #取倒数后两个元素 print(L[-2:]) #取前四个数,每两个取一个 print(L[:4:2]) #所有数,每两个取…
字符串的表示 python中的字符串是一个常量,可以使用单引号'',双引号""或三引号""" """来创建一个字符串常量.,如下: s1='Hello world!' s2="Hello world!" s3=""" Hello world! I am Chinese! I love my country! """       为什么python要…
一. 为什么要使用函数? 函数可以方便阅读代码. 函数可以减少重复代码. 函数可以减少管理操作,减少修改操作. 二. 函数分类: 内置函数:len()   sum()   max()   min() 自定义函数:用户自己设定的函数 三. 函数定义语法: def 函数名称(参数1,参数2,参数3) :   也可以不加参数 '''注释说明''' 函数体     也就是要执行的代码 return  返回值 例子: def name(): x=1 print (x) name() 结果: 四.  函数的…
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" print(name.count("a")) #统计字母"a"的数量 print(name.center(50,"-")) #一共打印50个字符,变量name在中间,其余用"-"补足 print(name.endswith("…
文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”)      直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caidan”,”w”,encoding=”utf8”)as f 关于open 模式: w     以写方式打开, a     以追加模式打开 r+     以读写模式打开(写的时候光标在最后,读的时候光标在最前边) w+     以写读模式打开 (先清空后将内容写入 ) a+     以追加读模式打开 (…
set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(tuple),6.字典(dict),7.集合(set),8.布尔型(bool) 1.集合创建 2.集合操作   2.1 set.add 添加元素 往set中添加一个元素只有set中不存在该元素时,才会加入该元素   2.2 set.clear 清空所有元素 从set中移除所有元素   2.3 set.…
深浅copy以及赋值 对于字符串和数字而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy n1 = #n1 = 'hahahaha' #赋值n2 = n1#浅copy n3 = copy.copy(n1) #深copyn4 = copy.deepcopy(n1)print(id(n1),id(n2)) #打印内存地址5787536 5787536print(id(n1),id(i3))5787536 5787536print(id(n1),id(n4))57…
字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个可以对象可以被哈希,内置函数hash()可以用来测试对象是否可被哈希.字典的值可以为任何对象.下文中用k来表示键,用v来表示值,字典的形式为d = {k1:v1, k2:v2,..., kn:vn} 字典的创建 1. 使用{ }创建 student = {"name": "Jac…
知识点:简单的对象定位 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道.楼层.门牌找到这个人. 定位对象的目的一般有下面几种 操作对象 获得对象的属性,如获得测试对象的class属性,name属性等等 获得对象的text 获得对象的数量 webdriver提供了一系列的对象定位方法,常用的有以下几种 id name class name link text pa…
一.字典: 1. 不是序列,是一种映射, 键 :值的映射关系. 2. 没有顺序和位置的概念,只是把值存到对应的键里面. 3. 通过健而不是通过偏移量来读取 4. 任意对象的无序集合 5. 可变长,异构,任意嵌套 6. 对象引用表(散列表) 二.相关操作: 1. 大括号,多个键 :值 2. 通过键来索引从而得到或操作对应的值: 3. 嵌套及索引: 4. 字典的排序: 方法一:key方法收集字典里的所有键,存到列表里,然后用sort排序,最后用for循环打印出来 方法二:python的高版本,用so…
1. 类继承 有如下的一段代码: python对象 如何调用类A的show方法了,方法如下: python对象 __class__方法指向了类对象,只用给他赋值类型A,然后调用方法show,但是用完了记得修改回来. 2. 方法对象 问题:为了让下面这段代码运行,需要增加哪些代码? python实例化 答案:为了能让对象实例能被直接调用,需要实现__call__方法 python实例化 3. new和init 下面这段代码输出什么? python实例化 答案: python实例化 使用__new_…
数据的保存: 1.内存:常用的变量2.文件:文本内容,二进制的文件内容3.数据库: 读文件:1.要读取的文件路径一定要存在.2.打开存在的文件:open函数    参数1:文件的路径,相对的或者是绝对的   参数2:打开文件的模式,r\w\a   参数3:encoding="utf-8"3.操作文件的内容,读.写(把原有的内容清空在写),追加(原有的内容不变,在它的最后面写上新的内容)4.文件关闭掉 新建文件默认保存的是ansi编码(gbk)然后也可以选择utf-8 相对路径:在当前的…
字典是一种映射类型的数据类型.辣么什么是映射呢?如果看过<数据结构与算法>这一本书的小伙伴应该有印象(我也只是大学学习过,嘻嘻). 映射:就是将两个集合一 一对应起来,通过集合a的值,集合b有且只有一个与之对应.字典是Python中唯一的内置映射类型. 1 创建和使用字典 字典以类似于下面的方式表示: phonebook = {'A':'a','B':'b','C':'c'} 字典由键和其相应的值组成,这种键-值对称为项.每个键与值之间用冒号( : )分隔开,每项用逗号分隔,并且在字典以及其他…
2.5 运算符与表达式 2.5.1 算术运算符和算术表达式 算术运算符包括四则运算符.求模运算符和求幂运算符. 算术运算符 加减乘除:+ - * / 表达式:x+y   x-y   x*y  x/y 求模:% 表达式:x%y 求幂: ** 表达式:x**y 注意:与C.Java语言不用,Python不支持自增运算符和自减运算符.例如,i++.i--是错误的语法 print("1+1=",1+1) print("2*3=",2*3) print("3%2=&…
能调用方法的一定是对象.文件本身也是一个对象.有很多自己内置的方法 #操作文件第一件事 建立文件对象 open函数 # 参数一:文件路径 绝对路径和相对路径都可以 # 参数二:模式选择 ‘r’ 读模式 ‘w’ 写模式(文件存在,创建对象的时候先格式化然后调# ‘a’ 追加模式 #用write函数的时候 从第一个位置开始写 第二个write节在前面的往后写 不存在新建) #f叫文件句柄 # #参数三:设置编码格式 f=open('1.txt','r',encoding='utf-8') #read…
1. 循环与流程控制 (1) for myList1 = ["A", "B", "C", "D"] # 正序遍历 for item in myList1: print(item) # 倒序遍历 for item in reversed(myList1): print(item) myList2 = list(range(1,5)) # [1, 2, 3, 4] # 等效于其它语言的for(i=0; i<4; i++) f…
目录 1. 插入文档 2. 查询文档 3. 更新文档 4. 删除文档   1. 插入文档 # -*- coding: UTF-8 -*- import datetime from pymongo import MongoClient client = MongoClient() db = client.book user = {"name": "daming12", "pwd": "asdf33", "tags&qu…
一:模块 一个模块就是一个py文件,里面定义了一些业务函数.引用模块,可以用import语句导入.导入模块后,通过 模块.函数名(参数)  来使用模块中的函数.如果存在多个同名模块,则前面模块名需要加上包路径. 如果我们只需导入模块中的几个函数,可以用 from 模块名 import 函数名,函数名,..的形式来导入,这样就可以在代码中使用函数名来调用函数,无需路径. 为了避免同名冲突,还可以在导入函数的同时设置别名,from 模块名 import 函数名 as 别名,然后在代码中就可以使用别名…
数据类型 整数int 32位机器,-2**31~2**31-1,即-2147483648~2147483647(4亿多) 64位机器,-2**63~2**63-1,非常大了. 长整型long 没有位数,取决于机器内存.整数发生溢出会自动转换为长整型,一直为int,没有long的概念.Python 2.2以上使用type(数字)来验证. 浮点型(float) 不是小数,表示形式是小数,但小数不止是浮点数, 复数 x+yj 布尔值 真或假,1或0,True或False 字符串 “hello worl…
Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). Python内置了读写文件的函数,open是最常用的文件打开函数,其中codecs包中提供了open函数,该函数具有内置函数open的所有…
一.定义 def functionName([arg1,arg2,...]): code 二.示例 #!/usr/bin/python #coding:utf8 #coding=utf8 #encoding:utf8 #encoding=utf8 def fun(x=3,y='甜'): print '生成一个',x,'元',y,'口味的蛋糕' fun() fun(10) fun(y='奶油') 冗余参数: #!/usr/bin/python def f(name="jim",age=2…