首页 > 编程语言 >Python中paramiko 模块的用法

Python中paramiko 模块的用法

时间:2024-04-13 16:34:10浏览次数:27  
标签:Python sftp 模块 服务器 txt data 远程 paramiko

paramiko 是一个用 Python 语言编写的、遵循 SSH2 协议、支持以加密和认证方式进行连接远程服务器的模块。改模块可以对远程服务器进行一些命令或文件操作。

1.安装

使用 pip3 安装 paramiko 模块

pip3 install paramiko

连接远程服务器

paramiko 模块连接远程服务器可以使用远程服务器的用户名、密码登录

import paramiko

# 创建一个SSHClient对象
ssh = paramiko.SSHClient()
# 将信任的主机加到 host_allow 列表
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect("服务器IP地址", "服务器端口号", "用户名", "密码")

2.使用命令

在登录远程服务器后,利用 paramiko 模块可以使用 shell 命令操作远程服务器,比如:df 命令、pwd 命令、cat 命令等等...

# 打印磁盘情况
# 执行df命令,结果放到 dfout 中,如果有错误将放到 dferr 中
dfout, dferr = ssh.exec_command('df')
print(dfout.read().decode('utf-8'))

# 使用cd、cat命令查看文件内容
# paramiko.txt文件为/root/data/paramiko.txt
catin, catout,caterr = ssh.exec_command('cd data;cat paramiko.txt')
print(catin.read().decode('utf-8'))

在 exec_command 函数中,exec_command 执行的是单个会话,执行完成后会回到登录的缺省目录,多个命令需要 命令1;命令2;命令3 的写法

3.sftp上传和下载文件

import paramiko

transport = paramiko.Transport(("服务器IP地址",服务器端口号))
transport.connect(username = "用户名", password = "密码")
sftp = paramiko.SFTPClient.from_transport(transport)
# 从远程服务器下载文件
# 远程服务器文件路径为/data/paramiko.txt
sftp.get('/data/paramiko.txt', 'paramiko.txt', print("下载完成!"))
# 从本地上传文件到远程服务器
sftp.put('upload_paramiko.txt', '/data/upload_paramiko.txt', print("上传完成!"))

4.服务器文件修改内容

sftp 对象可以在线修改远程服务器上文件的内容

import paramiko

# 登录远程服务器
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect("服务器IP地址",,"服务器端口号","用户名", "密码", timeout=5)
sftp = client.open_sftp()
# 远程服务器文件地址为/data/paramiko.txt
remoteFile = sftp.open("/data/paramiko.txt", 'a')
remoteFile.write("\n");
remoteFile.write("这里是追加的内容!");
remoteFile.close()
sftp.close()

5.查询文件

使用 sftp 对象获取远程服务器上的文件列表

import paramiko

#学习中遇到问题没人解答?小编创建了一个Python学习交流群:153708845
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect("服务器IP地址",,"服务器端口号","用户名", "密码", timeout=5)
sftp = client.open_sftp()
for fileName in sftp.listdir("/root/data"):
    if fileName.endswith(".txt"):
        print(fileName)
sftp.close()

6.结语

以上是 paramiko 模块的基本操作,学会以上内容后在多个远程服务器的情况下,可以快速、便捷的操作服务器内容

标签:Python,sftp,模块,服务器,txt,data,远程,paramiko
From: https://www.cnblogs.com/Pythonmiss/p/18133030

相关文章

  • centos6.5安装python3.6.9
    下载python:https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz安装tar-zxvfPython-3.6.9.tgzcdPython-3.6.9./configure--prefix=/opt/python3.6makemakeinstallecho"/opt/python3.6/lib">/etc/ld.so.conf.d/python3.6.9.confsudoldconf......
  • Visual Studio Code & Python教程3顶级扩展
    3简介扩展功能非常宝贵。它们有助于提高代码质量,加快开发工作。我们将介绍一些必备的通用扩展。3.1顶级扩展3.1.1Pylance微软的Pylance可以大大提高你的工作效率。Pylance是一款Python语言服务器,它增强了IntelliSense、语法高亮和大量其他功能,为Python开发人员带来了令人......
  • python调用库生成自然语言语音包
    当前还没release版本,只能git安装pipinstallgit+https://github.com/huggingface/parler-tts.git代码fromparler_ttsimportParlerTTSForConditionalGenerationfromtransformersimportAutoTokenizerimportsoundfileassfimporttorchdevice="cuda:0"iftor......
  • Python函数
    函数定义和调用defadd(x,y):#先定义ans=x+yreturnans#返回ansadd(4,5)#后调用注:定义函数时的“x和y”为形式参数,调用函数时的“4和5”为实际参数,当调用函数时,将实际参数“4和5”传递给形式参数“x和y”。None类型defsay_hello():#定义......
  • Python3 YOLOv8 体验
    参考https://docs.ultralytics.com/zh/quickstart/#use-ultralytics-with-pythonhttps://pytorch.org/get-started/locally/https://www.zhihu.com/question/275575243https://github.com/onnx/onnx/issues/5773https://stackoverflow.com/questions/72352528/how-to-fix-......
  • Python根据主播直播时间段判定订单销售额归属
    写在前面:最近在群里看到一个这样的直播电商的场景觉得还是挺有趣的,于是就想用Python来实现。需求描述:根据主播直播时间段结合销售订单的付款时间判断所属销售的归属生成主播在线直播时间段数据fromdatetimeimportdatetime,timedeltaimportrandomimportpandasaspd......
  • /usr/bin/env: "python": 没有那个文件或目录
    我电脑里面是Python3的解释器,不是Python的解释器,因此作如下操作1.首先查看Python3解释器的路径1whichpython3 2.我们将创建一个指向/usr/bin/python3的软链接,名为python。1sudoln-s/usr/bin/python3/usr/bin/pythonPythonUbuntu/usr/bin/env:python:没有那......
  • Python量化交易系统实战--计算交易指标
     作者:麦克煎蛋  出处:https://www.cnblogs.com/mazhiyong/转载请保留这段声明,谢谢! 本节主要包括以下内容:1、计算涨跌幅使用shift函数计算涨跌幅defcalculate_change_pct(data):"""涨跌幅=(当期收盘价-前期收盘价)/前期收盘价:paramdata:datafram......
  • HX711压力传感器+树莓派python驱动程序
    #-*-coding:utf-8-*-importRPi.GPIOasGPIOimporttime#VCC接1号针脚,GND接6号针脚,SCK接11号针脚,DT接13号针脚classHx711():defsetup(self):self.SCK=11#物理引脚第11号,时钟self.DT=13#物理引脚第13号,数据self.flag=1......
  • Python循环语句
    循环while循环i=0whilei<10:print(i)#输出0-9i+=1#Python中不支持自增和自减random随机数importrandom#导入含有随机数的库randomnum=random.randint(1,100)#创建一个变量num,将1-100中的随机数赋值给num注:Python中导入库(包)可以在代......