当我们需要调用一个文件中的依赖于某个文件的方法时,可能遇到相对路径和绝对路径的使用。比如说调用通过私钥登录服务器的方法。由于秘钥文件使用了相对路径,
在调用该方法时,会出现文件不存的的提示。
也就是说,通过相对路径找不到私钥文件。首先,看一下在方法被调用时的路径(在脚本中添加下面的代码)
import sys
import os
def OppositePath():
"""相对路径"""
dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))
print dirname
OppositePath()
再次执行脚本,控制台输出
也就是说,调用私钥登录服务器方法时的路径不是方法的原路径,自然也就找不到私钥文件。
在指定私钥文件路径时,使用绝对路径,保证正确的使用私钥文件(使用绝对路径)。
def AbsolutePath():
"""绝对路径"""
dirname, filename = os.path.split(os.path.abspath(__file__))
#print dirname # 输出当前文件的绝对路径
return dirname
dirname = AbsolutePath()
private_key_path = dirname + '\private'
再次调用私钥登录服务器方法成功!