Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 使用pysftp和paramiko时出现权限错误_Python_Python 3.7_Paramiko_Pysftp - Fatal编程技术网

Python 使用pysftp和paramiko时出现权限错误

Python 使用pysftp和paramiko时出现权限错误,python,python-3.7,paramiko,pysftp,Python,Python 3.7,Paramiko,Pysftp,我有一个通过sftp传输文件的用例,计划使用python3.7的paramiko或pysftp模块,并且与其中一个目的地/目标有问题。使用winSCP时,文件传输工作正常。任何解决此问题的建议,或实现此目标的具体原因 方法#1:使用paramiko和open#sftp import paramiko import os ssh_client =paramiko.SSHClient() ssh_client.load_system_host_keys() ssh_client.set_missin

我有一个通过sftp传输文件的用例,计划使用python3.7的paramiko或pysftp模块,并且与其中一个目的地/目标有问题。使用winSCP时,文件传输工作正常。任何解决此问题的建议,或实现此目标的具体原因

方法#1:使用paramiko和open#sftp

import paramiko
import os
ssh_client =paramiko.SSHClient()
ssh_client.load_system_host_keys()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname='abc.com', username='username', password='pwd')
sftp_client=ssh_client.open_sftp()

print(sftp_client.stat(path='/receive/file))
sftp_client.file("createfile","w+")
print(sftp_client.listdir(path='/receive/file'))
import os
import sys
import pysftp
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
sftp_client = pysftp.Connection(host='abc.com', username='username', password='pwd', cnopts=cnopts,port=22)
print(sftp_client)
sftp_client.chdir ('/receive/file')
print(sftp_client.pwd)
print(sftp_client.listdir())
sftp_client.put('testingfile',preserve_mtime=True)
sftp_client.close()
方法#1-错误

drwxrwxrwx   1 0        0               0 12 Mar 13:18 ?
Traceback (most recent call last):
  File "sftp_linux.py", line 32, in <module>
    sftp_client.file("createfile","w+")
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 372, in open
    t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 813, in _request
    return self._read_response(num)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 865, in _read_response
    self._convert_status(msg)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 896, in _convert_status
    raise IOError(errno.EACCES, text)
PermissionError: [Errno 13] Can not create createfile
[]
Traceback (most recent call last):
  File "sftp_linux.py", line 15, in <module>
    sftp_client.put('testingfile',preserve_mtime=True)
  File "/usr/local/lib/python3.7/site-packages/pysftp/__init__.py", line 364, in put
    confirm=confirm)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 759, in put
    return self.putfo(fl, remotepath, file_size, callback, confirm)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 720, in putfo
    s = self.stat(remotepath)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 493, in stat
    t, msg = self._request(CMD_STAT, path)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 813, in _request
    return self._read_response(num)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 865, in _read_response
    self._convert_status(msg)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 894, in _convert_status
    raise IOError(errno.ENOENT, text)
FileNotFoundError: [Errno 2] /receive/file/testingfile
方法2:使用PYSTFP-错误

drwxrwxrwx   1 0        0               0 12 Mar 13:18 ?
Traceback (most recent call last):
  File "sftp_linux.py", line 32, in <module>
    sftp_client.file("createfile","w+")
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 372, in open
    t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 813, in _request
    return self._read_response(num)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 865, in _read_response
    self._convert_status(msg)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 896, in _convert_status
    raise IOError(errno.EACCES, text)
PermissionError: [Errno 13] Can not create createfile
[]
Traceback (most recent call last):
  File "sftp_linux.py", line 15, in <module>
    sftp_client.put('testingfile',preserve_mtime=True)
  File "/usr/local/lib/python3.7/site-packages/pysftp/__init__.py", line 364, in put
    confirm=confirm)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 759, in put
    return self.putfo(fl, remotepath, file_size, callback, confirm)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 720, in putfo
    s = self.stat(remotepath)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 493, in stat
    t, msg = self._request(CMD_STAT, path)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 813, in _request
    return self._read_response(num)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 865, in _read_response
    self._convert_status(msg)
  File "/usr/local/lib/python3.7/site-packages/paramiko/sftp_client.py", line 894, in _convert_status
    raise IOError(errno.ENOENT, text)
FileNotFoundError: [Errno 2] /receive/file/testingfile
[]
回溯(最近一次呼叫最后一次):
文件“sftp_linux.py”,第15行,在
sftp_client.put('testingfile',preserve_mtime=True)
文件“/usr/local/lib/python3.7/site packages/pysftp/_init__.py”,第364行,输入
确认=确认)
文件“/usr/local/lib/python3.7/site packages/paramiko/sftp_client.py”,第759行,输入
返回self.putfo(fl、远程路径、文件大小、回调、确认)
文件“/usr/local/lib/python3.7/site packages/paramiko/sftp_client.py”,第720行,putfo格式
s=self.stat(远程路径)
stat中的文件“/usr/local/lib/python3.7/site packages/paramiko/sftp_client.py”,第493行
t、 msg=self.\u请求(CMD\u STAT,path)
文件“/usr/local/lib/python3.7/site packages/paramiko/sftp_client.py”,第813行,在请求中
返回self.\u读取\u响应(num)
文件“/usr/local/lib/python3.7/site packages/paramiko/sftp_client.py”,第865行,在“读取”响应中
自我转换状态(msg)
文件“/usr/local/lib/python3.7/site packages/paramiko/sftp_client.py”,第894行,处于转换状态
raise IOError(errno.enoint,text)
FileNotFoundError:[Errno 2]/receive/file/testingfile

显示成功上载的日志文件或使用WinSCP的同一文件。+
/receive/file
的用途是什么?