栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

通过python库pexpect进行多Linux系统下文件互相传输

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过python库pexpect进行多Linux系统下文件互相传输

文章目录
  • 前言
  • 一、pexpect库是什么?
  • 二、使用步骤
    • 1.关键代码
    • 2.实验结果
  • 总结


前言

  最近在实现从一个树莓派获取另一个树莓派中的文件夹里的相片,对速度没有极致的要求,综合考虑就用了python中的pexpect库。

一、pexpect库是什么?

  pexpect 是 Python 语言的类 Expect 实现,Expect 程序主要用于人机对话的模拟,就是那种系统提问,人来回答 yes/no ,或者账号登录输入用户名和密码等等的情况。简单理解就是Pexpect能够产生子应用程序并控制他们,能够通过期望模式对子应用的输出做出反应。Pexpect的主要特点是需要Python的基本库pty,这个库只有在类Unix系统上才有。Pexpect使用在自动交互的应用,例如SSH等等。官方文档链接:核心pexpect组件
  其实我们最后要用pexpect实现Linux下的scp协议!

二、使用步骤 1.关键代码

代码如下(示例):

        ip = "192.168.xxx.xxx" #你的IP地址
        port = 22 # 你的端口
        username = "pi" #你的用户名字
        password = "xxxxxx" #你的密码
        remote_path = '/home/pi/Desktop/photo' #获取文件位置
        local_path = '/home/pi/Desktop' #保存位置
        password_key = '.*assword.*'

        command = f'scp -r {username}@{ip}:{remote_path} {local_path}' 
        execute = pexpect.spawn(command)
        execute.expect(password_key)
        execute.sendline(password)
        execute.expect(pexpect.EOF)
2.实验结果

  写了一个pyqt5的操作界面,点击获取就可以通过scp协议获取另一个虚拟机上的文件啦!


总结

  pexpect不仅可以帮助我们实现在Linux下的scp协议,也可以帮我们实现多种自动化指令!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029188.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号