當我們需要調用一個文件中的依賴於某個文件的方法時,可能遇到相對路徑和絕對路徑的使用。比如說調用通過私鑰登錄服務器的方法。由於祕鑰文件使用了相對路徑,
在調用該方法時,會出現文件不存的的提示。
也就是說,通過相對路徑找不到私鑰文件。首先,看一下在方法被調用時的路徑(在腳本中添加下面的代碼)
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'
再次調用私鑰登錄服務器方法成功!