python paramiko run命令

mar*_*ues 5 python ssh paramiko

我试着运行这个脚本:

hostname = '192.168.3.4'
port = 22
username = 'username'
password = 'mypassword'
y = "2012"
m = "02"
d = "27"

if __name__ == "__main__":
   s = paramiko.SSHClient()
   s.load_system_host_keys()
   s.connect(hostname, port, username, password)
   command = 'ls /home/user/images/cappi/03000/y/m/d'
   s.close
Run Code Online (Sandbox Code Playgroud)

现在的问题是:我怎样才能把这些变量y,m,d到变量command

mat*_*ski 13

Python有很多方法可以执行字符串格式化.最简单的方法之一是简单地将字符串的各个部分连接在一起:

#!/usr/bin/env python
hostname = '192.168.3.4'    
port = 22
username = 'username'
password = 'mypassword'
y = "2012"
m = "02"
d = "27"

def do_it():
    s = paramiko.SSHClient()
    s.load_system_host_keys()
    s.connect(hostname, port, username, password)
    command = 'ls /home/user/images/cappi/03000/' + y + '/' + m + '/' + d
    (stdin, stdout, stderr) = s.exec_command(command)
    for line in stdout.readlines():
        print line
    s.close()

if __name__ == "main":
    do_it()
Run Code Online (Sandbox Code Playgroud)

  • 我会指出1.这里的n非常小,2.+运算符在这里非常易读,并且3. 3. http://greaterdebater.com/blog/gabe/post/7 (2认同)