a = raw_input("Select your project: ")
stdin, stdout, stderr = ssh.exec_command('cd test \n cd software \n cd {0} \n ls'.format(a))
softwares = stdout.readlines()
我得到了输出。但是,当我试图获得以下代码行的输出时,
stdin, stdout, stderr = ssh.exec_command('cd test \n cd software \n cd {0} \n pwd'.format(a))
pwd = stdout.readlines()
pwd1 = '\n'.join(pwd)
print pwd1
b = raw_input("Select the software you want to download: ")
sftp = ssh.open_sftp()
sftp.get('{1}/{2}'.format(pwd1,b),'{2}'.format(b))
我遇到以下错误:
Traceback(最近一次调用最后一次):文件“D:\ Python脚本” 写测试用例\ Paramiko.py“,第32行,in sftp.get('{1} / {2}'。format(pwd1,b),'{2}'。format(b))IndexError:元组索引超出范围
我需要在那里传递参数,因为路径将针对不同的选择进行更改。
答案 0 :(得分:2)
格式字符串中的数字应该从0开始,而不是从1开始。
>>> '{1}'.format(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
>>> '{0}'.format(1)
'1'
>>> '{}'.format(1) # auto numbering
'1'
如果您使用的是python 2.7+,则可以完全省略该数字。 (自动编号)。第二种格式可以只是b
(根本不需要使用格式,因为b
已经是一个字符串对象)
sftp.get('{}/{}'.format(pwd1, b), b)
答案 1 :(得分:0)
&#39; {2}&#39; .format(b)中
你告诉格式插入第二个参数,但只提供一个。改为{1}。