我正在嘗試在代碼中插入一個變量以在遠程 Linux 主機上運行命令,為此我使用 .format 方法,請參閱下面的代碼:import paramikofrom datetime import datetime, timedeltahostnames = [ 'hostname',]username = 'username'password = 'password'ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.load_system_host_keys()ydate = datetime.strftime(datetime.now() - timedelta(1), '%Y%m%d')for host in hostnames: ssh.connect(host, username=username, password=password, look_for_keys=False) ssh.exec_command('cp test.txt {}.mrs_stats0.{}.pytest.gz ; chmod +r {}.mrs_stats0.{}s.gz').format(host, ydate, host, ydate)我在嘗試使用 {} 和 .format 時失敗,并出現以下錯誤:Traceback (most recent call last): File "C:/Users/IdeaProjects/main.py", line 25, in <module> ssh.exec_command('cp test.txt {}.mrs_stats0.{}.pytest.gz ; chmod +r {}.mrs_stats0.{}s.gz').format(host, test, host, test)AttributeError: 'tuple' object has no attribute 'format'我無法理解為什么我收到此錯誤,此外我已經做了一些閱讀以進一步理解元組,并且我無法理解為什么我的變量沒有被讀取為字符串
1 回答

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
我想你希望最后一行是
ssh.exec_command('cp?test.txt?{}.mrs_stats0.{}.pytest.gz?;?chmod?+r?{}.mrs_stats0.{}s.gz'.format(host,?ydate,?host,?ydate))
只是一個錯位的支架。在您當前的代碼中ssh
是paramiko.SSHClient()
實例,其方法exec_command()
method 返回執行命令的 stdin、stdout 和 stderr,作為 3 元組
添加回答
舉報
0/150
提交
取消