由于工作需求需要用到paramiko模块上传文件至服务器端,但上传期间遇到以下报错:
Traceback (most recent call last):
File "sf.py", line 10, in
sftp.put('/tmp/ttt.txt', '/tmp')
File "/usr/local/python3.5.2/lib/python3.5/site-packages/paramiko/sftp_client.py", line 727, in put
return self.putfo(fl, remotepath, file_size, callback, confirm)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/paramiko/sftp_client.py", line 683, in putfo
with self.file(remotepath, 'wb') as fr:
File "/usr/local/python3.5.2/lib/python3.5/site-packages/paramiko/sftp_client.py", line 341, in open
t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/paramiko/sftp_client.py", line 780, in _request
return self._read_response(num)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/paramiko/sftp_client.py", line 832, in _read_response
self._convert_status(msg)
File "/usr/local/python3.5.2/lib/python3.5/site-packages/paramiko/sftp_client.py", line 865, in _convert_status
raise IOError(text)
经上刚查证发现是put时候路径没有写成绝对路径的问题,使用OS模块就行
sftp.put('/tmp/ttt.txt', os.path.join('/tmp', 'ttt.txt'))