I’m try to run this script:
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
The question is:
how can I put the variables y
,m
,d
into the variable command
?
Advertisement
Answer
Python has lots of ways to perform string formatting. One of the simplest is to simply concatenate the parts of your string together:
#!/usr/bin/env python import paramiko 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()