1.1.说明:
Wexpect 是一个 Python 模块,用于生成子应用程序并自动控制它们
Wexpect 可用于自动化交互式应用程序,例如 ssh、ftp、passwd、telnet 等
它可用于自动化安装脚本,以在不同服务器上复制软件包安装
它可用于自动化软件测试。Wexpect 本着 Don Libes 的 Expect 的精神,但 Wexpect 是纯 Python
Python 的其他类似 Expect 的模块需要 TCL 和 Expect 或需要编译 C 扩展
Wexpect 不使用 C、Expect 或 TCL 扩展。
原始 Pexpect 应该适用于支持标准 Python pty 模块的任何平台
Wexpect 适用于 Windows 平台。Wexpect 界面注重易用性,让简单的任务变得容易
1.2.Install
pip install wexpect
2.实例:
实例1:To interract with a child process use spawn method:
import wexpect
def test():
child = wexpect.spawn('cmd.exe')
child.expect('>')
child.sendline('ls')
child.expect('>')
print(child.before)
child.sendline('exit')
# 它启动一个 Windows 命令解释器(又名 cmd)列出当前目录并退出
def hello_wexpect():
# Start cmd as child process
child = wexpect.spawn('cmd.exe')
# Wait for prompt when cmd becomes ready.
child.expect('>')
# Prints the cmd's start message
print('1.before = ',child.before)
print('2.after = ',child.after)
# run list directory command
child.sendline('ls')
# Waiting for prompt
child.expect('>')
# Prints content of the directory
print('3.before = ',child.before)
print('4.after = ',child.after)
# Exit from cmd
child.sendline('exit')
# Waiting for cmd termination.
child.wait()
C:\ProgramData\Anaconda3\python.exe E:/程序/Python代码/wrap_ha/juejin/OpSql.py
[('future_base',), ('information_schema',), ('mysql',), ('new_futures',), ('performance_schema',), ('sakila',), ('sys',), ('world',)]
1.before = Microsoft Windows [版本 10.0.18362.387](c) 2019 Microsoft Corporation。保留所有权利。
(base) E:\程序\Python代码\wrap_ha\juejin
2.after = >
(base) E:\程序\Python代码\wrap_ha\juejin
4.after = >
实例3.1:
是一个完整的自定义示例代码。此示例脚本运行foo python 程序,并与之通信。
请本地运行 foo首先是 .py,这是一个非常基本的 stdio 处理程序脚本。
import sys
import wexpect
import os
here = os.path.dirname(os.path.realpath(__file__))
# Path of python executable:
pythonInterp = sys.executable
prompt = ': '
# Start the child process
p = wexpect.spawn(pythonInterp, [here + '\\foo.py'])
# Wait for prompt
p.expect(prompt)
print(p.before)
# Send the 'small integer'
p.sendline('3')
p.expect(prompt)
print(p.before)
# print the texts
print(p.before, end='')
print(p.match.group(0), end='')
# Send the name
p.sendline('Bob')
# wait for program exit.
p.wait()
# print the texts
print(p.read(), end='')
实例3.2:foo.py
This is is a very basic stdio handler script. This is used by python.py example.
import time
# Read an integer from the user:
print('Give a small integer: ', end='')
num = input()
# Wait the given time
for i in range(int(num)):
print('waiter ' + str(i))
time.sleep(0.2)
# Ask the name of the user to say hello.
print('Give your name: ', end='')
name = input()
print('Hello ' + str(name), end='')
from __future__ import print_function
import sys
import os
import re
here = os.path.dirname(os.path.abspath(__file__))
wexpectPath = os.path.dirname(here)
import wexpect
# Path of cmd executable:
cmd_exe = 'cmd'
# The prompt should be more sophisticated than just a '>'.
cmdPrompt = re.compile('[A-Z]\:.+>')
# Start the child process
p = wexpect.spawn(cmd_exe)
# Wait for prompt
p.expect(cmdPrompt, timeout = 5)
# print the texts
print(p.before, end='')
print(p.match.group(0), end='')
while True:
# Wait and run a command.
command = input()
p.sendline(command)
# Wait for prompt
p.expect(cmdPrompt)
# print the texts
print(p.before, end='')
print(p.match.group(0), end='')
except wexpect.EOF:
# The program has exited
print('The program has exied... BY!')
break
def gen_model(self,db_name:str,model_name:str='',user='root',password='root',host='localhost'):
father_path = os.path.abspath(os.path.dirname(os.getcwd()))
model_name = model_name if model_name else db_name +'_model.py'
cmd = r'python -m pwiz -e mysql -u %s -H %s -P %s > %s\peewee_data\%s'%(
user,host,db_name,father_path,model_name)
#python -m pwiz -e mysql -u root -H localhost -P new_futures > E:\程序\Python代码\wrap_ha\peewee_data\new_futures_model.py
child = wexpect.spawn('cmd.exe')
child.expect('>')
child.sendline(cmd)
child.expect(':')
print(child.before)
child.sendline(password)
child.expect('>')
child.sendline('exit')
wexpect · PyPI
P
expect
是一个
Python
模块,用于生成子应用程序并
自动
对其进行控制。
您是否需要w
expect
,如果...
您想通过
python
脚本控制任何
Windows
控制台
应用程序。
您要为
Windows
控制台
应用程序编写测试
自动
化脚本。
您想通过同步并行控制多个应用程序来
自动
化您的工作。
pip install w
expect
要与子进程进行交互,请使用spawn方法:
import w
expect
prompt = '[A-Z]\:.+>'
child = w
expect
. spawn ( 'cmd.exe' )
child .
expect
( prompt ) # Wait for startup prompt
child . sendline ( 'dir' ) # List the curren
第一步得在Pycharm的官网下载适用与自己版本的软件,下好后会给你提示说要注册码,网上找一个登录,里面的File有一个setting点进去,在project interpreter里,有一个小加号,里面搜索p
expect
,然后下载就可以了。
我们再试一下import p
expect
,没有编译错误就说明成功。
P
expect
是 Don Libes 的
Expect
语言
的一个
Python
实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其
自动
交互的
Python
模块。 P
expect
的使用范围很广,可以用来实现与 ssh、ftp 、telnet 等程序的
自动
交互;可以用来
自动
复制软件安装包并在不同机器
自动
安装;还可以用来实现软件测试中与命令行交互的
自动
化。
...
import sys
future_code = 'M1809'
url_str = ('http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=' +
future_code)
r = requests.get(url_str)
r_json = r.json()
r_lists = list(r_json)
print('future_code,date,open,high,low,close,vol')
for r_list in r_lists:
for v in r_list:
print(v + ',',end='')
print('\n')
array = []
with open('D:\\UiPath\\凭据地址.txt', 'r', encoding='utf-8') as f:
for line in f.readlines():
line = line.strip()
a = win32cred.CredRead(line, 1)["UserName"]
首先申明,该文章只可以用于交流学习,不可以用于其他用途,否则后果自负。
现在国家对网络安全的管理,越来越严,但是还是有一些不法网站逍遥法外,受限于国内的人力、物力,无法对这些网站进行取缔。
今天演示的这个网站,就是属于非法的网站。
首先看登陆界面。
抓取登陆信息。
使用Post Form表单的形式,进行用户名和
密码
的提交。接下来我们看提交的用户名和
密码
。
我输...
今天在同事的服务器上执行一个
python
脚本,发现它在运行的时候始终没有打印命令的log。
因为p
expect
的初始logfile是指向None,所以我修改了logfile,但是发现还是没有输出。
child = p
expect
.spawn('some_command')
child.logfile = sys.stdout
于是我去查看了一下p
expect
.py,发现在它的版本很低,,lo
利用
Python
代码获取web
密码
程序的脚本源代码分享,达到能够抓取用户名、
密码
、cookie等信息的方法详解。需要用到 pcap、dpkt两个方法模块,请确认已经安装成功。
python
做的web获取解
密码
程序代码如下:# -*- coding: utf8 -*-#!/usr/bin/env
python
import pcapimport dpktdev='eth0'filter='tcp dst...
filter='tcp dst port 80'
pc=pcap.pcap(dev) #注,参数可为网卡名,如eth0
pc.setfilter(filter) #设置监听过滤器
hostlist=['xiaonei.com', 'r
摘要:在一个
Python
项目中,要执行“/usr/bin/sftpaliyunzixun@xxx.com”命令连接远程FTP服务器,代码如下:_pass='assword:'_prompt='sftp>'_newKey="Areyousureyouwanttocontinueconnecting(yes/no)?"self._client=p
expect
.spawn(command_conn...