我正在嘗試在代碼中插入一個(gè)變量以在遠(yuǎn)程 Linux 主機(jī)上運(yùn)行命令,為此我使用 .format 方法,請(qǐng)參閱下面的代碼: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 時(shí)失敗,并出現(xiàn)以下錯(cuò)誤: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'我無(wú)法理解為什么我收到此錯(cuò)誤,此外我已經(jīng)做了一些閱讀以進(jìn)一步理解元組,并且我無(wú)法理解為什么我的變量沒(méi)有被讀取為字符串
1 回答

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