我正在编写一个Python脚本,需要下载远程的xml文件并进行解析。
我使用paramiko来完成这个任务。
以下是脚本内容:
def copyFile(ip, user, pwd, remotePath, localPath):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect(ip,username=user,password=pwd)
### Copy remote file to server
sftp = ssh.open_sftp()
sftp.get(remotePath,localPath)
sftp.close()
ssh.close()
return ["OK",0,0]
except IOError as e:
flash(str(e)+" IOERROR")
return ["IOERROR: " + str(e),0,0]
except Exception as e:
flash(str(e)+" OTHER EXCEPTION")
return ["Error: " + str(e),0,0]
这段代码返回了一个IOError,意思是文件不存在。
但如果我将变量替换为字符串,它就完美地工作了。
`sftp.get("/etc/conf/file-cfg.xml","./conf/file-cfg.xml")`
变量已经被正确地传递: `copyFile(ip,username,pwd,"/etc/conf/"+i,"."+i)`
我花费了很多时间尝试找出问题所在,但没有任何成功。
我的远程机器: Ubuntu 13.10 x64 本地机器: Windows 7 x64