1、安装模块语句:sudo -E pip3 install xxxx (这是给python3版本的安装库文件,如果是python2则是:sudo -E pip install xxxx)注意:这里有个前提,要先下载好相应的模块到raspberry上
2、python child.before.split()
使用split()是默认以空格和\n为分隔符 你是用的split(',')就是以","符号为分隔符
如果你确定是以逗号为分隔符,那就这么写
import re
re.sub('\n','',a).split(',')
举例:
a='fdas s,adf s,df\n sdf\n sd fs\nd\n sd f'
print a.split(',') 以逗号为分隔符,但是\n存在
['fdas s', 'adf s', 'df\n sdf\n sd fs\nd\n sd f']
换种写法:
re.sub('\n','',a).split(',')
['fdas s', 'adf s', 'df sdf sd fsd sd f'] \n消失了,还是以逗号为分隔符
这句话的意思是sub('\n','',a) 从a中将\n替换成''空字符 然后split(',')
3、字符串index方法(python string index)
python 的index方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1
比如:
info = 'abca'
print info.index('a')
返回:0,说明字母a是在info的第0个位置。
如果我们把字母a换成333是什么结果。
print info.index('333')
ValueError: substring not found
4、Python List append()方法
描述
append() 方法用于在列表末尾添加新的对象。
语法
append()方法语法:
list.append(obj)
参数
obj -- 添加到列表末尾的对象。
返回值
该方法无返回值,但是会修改原来的列表。
实例
以下实例展示了 append()函数的使用方法:
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc'];
aList.append( 2009 );
print "Updated List : ", aList;
以上实例输出结果如下:
Updated List : [123, 'xyz', 'zara', 'abc', 2009]
5、child.send()与child.expect()
# 期望具有提示输入用户名的字符出现
index = child.expect(["(?i)name", "(?i)Unknown host", pexpect.EOF, pexpect.TIMEOUT])
# 匹配到了 "(?i)name",表明接下来要输入用户名
if ( index == 0 ):
# 发送登录用户名 + 换行符给子程序.
child.sendline(loginName)
# 期望 "(?i)password" 具有提示输入密码的字符出现.
index = child.expect(["(?i)password", pexpect.EOF, pexpect.TIMEOUT])
# 匹配到了 pexpect.EOF 或 pexpect.TIMEOUT,表示超时或者 EOF,程序打印提示信息并退出.
if (index != 0):
print "ftp login failed"
child.close(force=True)
# 匹配到了密码提示符,发送密码 + 换行符给子程序.
child.sendline(loginPassword)
# 期望登录成功后,提示符 "ftp>" 字符出现.
index = child.expect( ['ftp>', 'Login incorrect', 'Service not available',
pexpect.EOF, pexpect.TIMEOUT])
# 匹配到了 'ftp>',登录成功.
if (index == 0):
print 'Congratulations! ftp login correct!'
# 发送 'bin'+ 换行符给子程序,表示接下来使用二进制模式来传输文件.
child.sendline("bin")
print 'getting a file...'
# 向子程序发送下载文件 rmall 的命令.
child.sendline("get rmall")
6、before 和after
expect 不断从读入缓冲区中匹配目标正则表达式,当匹配结束时 pexpect 的 before 成员中保存了缓冲区中匹配成功处之前的内容, pexpect 的 after 成员保存的是缓冲区中与目标正则表达式相匹配的内容。
[python] view plain copy
child = pexpect.spawn('/bin/ls /')
child.expect (pexpect.EOF)
print child.before
此时 child.before 保存的就是在根目录下执行 ls 命令的结果。