Python Paramiko-Run命令
我正在尝试运行此脚本:Python Paramiko-Run命令,python,ssh,paramiko,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, pass
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
问题是:
如何将变量
y
,m
,d
放入变量命令中?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()
使用,可以按名称访问参数:
'ls /home/user/images/cappi/03000/{year}/{month}/{day}'.format(year=y, month=m, day=d)
我不认为这有什么明显的改善。现在如果你说了“/”.join([y,m,d]),你就有了一个案例。这里的问题不是语法,问题是如果你运行a1+a2+a3+…+一个
,您正在创建和销毁n-1
临时字符串join
仅创建一个字符串。这是一个不好的习惯。n在这里非常小,2。这里的+运算符可读性很强,3。我现在明白了。谢谢大家@马特:我想我们必须同意在这里不同意。这是一个惯例,养成正确操作的习惯是最好的,依我看。你需要在字符串前面加一个f。@kagronick,但是上面的.format(…)
字符串是完全有效的。哦,我没有在手机上向右滚动。格式在2006年是新的,所以我假设f字符串就是你们所说的。
'ls /home/user/images/cappi/03000/{year}/{month}/{day}'.format(year=y, month=m, day=d)