python中实现sftp

python中想要实现sftp的话可以使用paramiko模块

官网http://www.paramiko.org/ 其中文档有很详细的说明

paramiko很强大,通过python实现SSH协议。可以做到ssh远程登录,sftp上传下载文件。

sftp的实现

1.通过密码口令认证

#!/usr/bin/python
# -*- coding:utf-8 -*-
import paramiko
remotedir = "/app/ftpuser/"
hostname = "192.168.1.100"
port = 22
user = "ftpuser"
password = "123456" 

if __name__=="__main__":
    t = paramiko.Transport((hostname,port))
    t.connect(username=user,password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    print sftp.listdir(remotedir)
    t.close

2.通过密钥认证

#!/usr/bin/python
# -*- coding:utf-8 -*-
import paramiko
remotedir = "/app/ftpuser/"
hostname = "192.168.1.100"
port = 22
user = "ftpuser"
pkey_file = "/home/aa/.ssh/id_rsa" 

if __name__=="__main__":
    key = paramiko.RSAKey.from_private_key_file(pkey_file)
    t = paramiko.Transport((hostname,port))
    t.connect(username=user,pkey=key)
    sftp = paramiko.SFTPClient.from_transport(t)
    print sftp.listdir(remotedir)
    t.close

看,用python实现sftp客户端访问的实现很简单。相比较shell脚本而言,在一些业务逻辑处理方面用python实现更加方便

时间: 2024-10-10 13:29:44

python中实现sftp的相关文章

Python中SSH协议的实现 - Paramiko

操作系统维护时, 一般会通过ssh命令连接到远端服务器, 进行某些操作. 那Python中如何完成这些呢, 当然也能执行ssh命令, 但还有更优雅的方式, 借助Paramiko, 其为实现了SSHv2协议的一开源项目, 下面主要使用了它的ssh和sftp客户端的相关功能. 安装 # pip install paramiko SSH客户端使用 In [1]: import paramiko #获取SSHClient对象. In [2]: ssh = paramiko.SSHClient() #设置

走入计算机的第四十天(python中sockserver模块)

一.Python中的sockserver模块 1.该模块与sock模块不同之处是该模块自动帮我们分装好了一些功能,让我们在编程的时候直接调用这些功能就可以了,节省了编程步骤. 2.如图所示 注释:上图为服务端设置 该模块的操作方法比较死板,我们只要会熟悉的使用他就可以了.

python中if __name__ == '__main__':

Using a module's __name__ Example? 8.2.? Using a module's __name__ #!/usr/bin/python # Filename: using_name.py if __name__ == '__main__': print 'This program is being run by itself' else: print 'I am being imported from another module' Output $ pytho

关于Python中的yield

关于Python中的yield http://www.cnblogs.com/tqsummer/archive/2010/12/27/1917927.html http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ 一.迭代器(iterator) 在Python中,for循环可以用于Python中的任何类型,包括列表.元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器 迭代器是一个实现了迭代器协议

python中的那些“神器”

"武林至尊,宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋",这是神器.不过今天要说的python中的"神器"就没有这么厉害了,这里要说的"神器"其实就是名称里面带了个"器"的,如下: 列表解析器 迭代器 生成器 装饰器 列表解析器 现在遇到了这样一个问题需要解决:"有一个数字的列表,要求对该列表中的奇数乘以2,返回处理完成后的列表(不改变原来列表的顺序,仅对列表中的奇数乘以2)",比较传统的方法可能会是

Python中字符串格式化如何实现?

Python开发中字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator. 1.百分号方式 %[(na

python 中*args 和 **kwargs

简单的可以理解为python 中给函数传递的可变参数,args 是 列表的形式.kwargs 是 key,value的形式,也就是python 中的字典. *args 必须出现在**kwargs 的前边,否则会抛异常. 1 def test(*args, **kwargs): 2 print args 3 print kwargs 1 if __name__ == '__main__': 2 print '---test 1---' 3 test(1, 2, 3) 4 print '---tes

python中super出现的TypeError: must be type, not classobj 原因及解决

执行一下代码,出现错误,TypeError: must be type, not classobj class A():    def __init__(self):        print("Enter A")        print("Leave A") class B(A):    def __init__(self):        print("Enter B")        super(B, self).__init__()  

python中的切片问题

对于在一个字符串中选取几个字符,不同的语言有不同的解决方案,python 中就有了切片的方法.    在list中,如下:     s=list(range(1,101))    如果想要选取偶数个数字(或者选取偶数),可以用循环的方法:但是方法臃肿,比较"笨"    但是python中给出的切片方法是更加的优雅的,如下:    L=list(range(1,101))    print(L[0])    print(L[0:10])#输出结果是[1, 2, 3, 4, 5, 6, 7