Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python';当我试图上传一个文件时,我收到一个OS错误_Python_Sftp_Paramiko - Fatal编程技术网

使用python';当我试图上传一个文件时,我收到一个OS错误

使用python';当我试图上传一个文件时,我收到一个OS错误,python,sftp,paramiko,Python,Sftp,Paramiko,我正在使用Python3的paramiko包建立sftp连接并上传文件 我能够使用以下代码成功地建立到服务器的连接 import paramiko key_file_test = './path_to_key_file/key_file.pub' DOWNLOAD_UAT = { "USERNAME": "xxxxxxxx", "PASSWORD": "xxxxxxxx" } UAT_FTP_SITE = 'sftp-test.site.com' transport =

我正在使用Python3的paramiko包建立sftp连接并上传文件

我能够使用以下代码成功地建立到服务器的连接

import paramiko

key_file_test = './path_to_key_file/key_file.pub'

DOWNLOAD_UAT = {
    "USERNAME": "xxxxxxxx",
    "PASSWORD": "xxxxxxxx"
}

UAT_FTP_SITE = 'sftp-test.site.com'

transport = paramiko.Transport((UAT_SFTP_SITE,22))
transport.connect(username=DOWNLOAD_UAT['USERNAME'], password=DOWNLOAD_UAT['PASSWORD'])
transport.add_server_key(key)
sftp = paramiko.SFTPClient.from_transport(transport)

print(sftp.listdir())
''' ['archiv'] '''

sftp.put('test_sftp_upload_file.txt', remotepath='./')
然而,当我运行上面的最后一行时,我得到以下错误输出

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-69-bec34aeb9958> in <module>()
----> 1 sftp.put('test_sftp_upload_file.txt', remotepath='./')

C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in put(self, localpath, remotepath, callback, confirm)
    712         file_size = os.stat(localpath).st_size
    713         with open(localpath, 'rb') as fl:
--> 714             return self.putfo(fl, remotepath, file_size, callback, confirm)
    715 
    716     def getfo(self, remotepath, fl, callback=None):

C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in putfo(self, fl, remotepath, file_size, callback, confirm)
    668         .. versionadded:: 1.10
    669         """
--> 670         with self.file(remotepath, 'wb') as fr:
    671             fr.set_pipelined(True)
    672             size = self._transfer_with_callback(

C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in open(self, filename, mode, bufsize)
    336             imode |= SFTP_FLAG_CREATE | SFTP_FLAG_EXCL
    337         attrblock = SFTPAttributes()
--> 338         t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
    339         if t != CMD_HANDLE:
    340             raise SFTPError('Expected handle')

C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in _request(self, t, *arg)
    765     def _request(self, t, *arg):
    766         num = self._async_request(type(None), t, *arg)
--> 767         return self._read_response(num)
    768 
    769     def _async_request(self, fileobj, t, *arg):

C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in _read_response(self, waitfor)
    817                 # synchronous
    818                 if t == CMD_STATUS:
--> 819                     self._convert_status(msg)
    820                 return t, msg
    821 

C:\ProgramData\Anaconda3\lib\site-packages\paramiko\sftp_client.py in _convert_status(self, msg)
    850             raise IOError(errno.EACCES, text)
    851         else:
--> 852             raise IOError(text)
    853 
    854     def _adjust_cwd(self, path):

OSError: Bad message
---------------------------------------------------------------------------
OSError回溯(最近一次调用上次)
在()
---->1 sftp.put('test_sftp_upload_file.txt',remotepath='./'))
C:\ProgramData\Anaconda3\lib\site packages\paramiko\sftp_client.py输入(self、localpath、remotepath、回调、确认)
712文件大小=os.stat(localpath).st大小
713开放式(本地路径“rb”)为fl:
-->714返回self.putfo(fl、远程路径、文件大小、回调、确认)
715
716 def getfo(自身、远程路径、fl、回调=无):
putfo中的C:\ProgramData\Anaconda3\lib\site packages\paramiko\sftp\u client.py(self、fl、remotepath、文件大小、回调、确认)
668         .. versionadded::1.10
669         """
-->670,其中self.file(remotepath,'wb')作为fr:
671 fr.set_管道化(真实)
672 size=self.\u传输\u和\u回调(
C:\ProgramData\Anaconda3\lib\site packages\paramiko\sftp_client.py处于打开状态(self、文件名、模式、bufsize)
336 imode |=SFTP_标志|创建| SFTP_标志|不包括
337 attrblock=SFTPAttributes()
-->338 t,msg=self.\u请求(CMD\u OPEN,filename,imode,attrblock)
339如果t!=CMD_句柄:
340提升或(预期手柄)
C:\ProgramData\Anaconda3\lib\site packages\paramiko\sftp\u client.py in\u请求(self,t,*arg)
765 def_请求(self、t、*arg):
766 num=self.\u异步\u请求(类型(无),t,*arg)
-->767返回自读响应(num)
768
769定义异步请求(self、fileobj、t、*arg):
C:\ProgramData\Anaconda3\lib\site packages\paramiko\sftp\u client.py in\u read\u response(self,waitfor)
817#同步
818如果t==CMD_状态:
-->819自我转换状态(msg)
820返回t,msg
821
C:\ProgramData\Anaconda3\lib\site packages\paramiko\sftp\u client.py处于转换状态(self,msg)
850 raise IOError(errno.EACCES,text)
851其他:
-->852上升IOError(文本)
853
854 def_调整_cwd(自身,路径):
错误:错误消息

我按照这里的文档来构造我的paramiko包代码。

根据文档,您应该指定完整的远程文件路径


根据文档,您应该指定完整的远程文件路径


你能链接到这个吗?我在这里看不到这个警告:你能链接到这个吗?我在这里看不到这个警告:
    :param str remotepath: the destination path on the SFTP server. Note
        that the filename should be included. Only specifying a directory
        may result in an error.