python paramiko put no such file
时间: 2023-08-15 15:08:44 浏览: 39
这个错误通常发生在使用 Paramiko 库的 put() 方法时,表示指定的本地文件不存在。请确保指定的本地文件路径正确,且文件确实存在。你可以使用 Python 的 os 模块检查文件是否存在,例如:
```python
import os
local_file_path = '/path/to/local/file'
if not os.path.exists(local_file_path):
print(f'Error: {local_file_path} does not exist')
# 处理文件不存在的情况
else:
# 执行 put() 方法上传文件
```
如果本地文件确实存在,还可能是因为文件权限或路径问题导致无法访问。你可以检查文件权限和路径是否正确,或者尝试使用绝对路径来确保文件能够正确访问。
相关问题
python paramiko使用_python Paramiko使用示例
好的,我可以为您提供一个 Python Paramiko 的使用示例。首先,您需要安装 Paramiko 库,可以使用以下命令在命令行中安装:
```
pip install paramiko
```
接下来,您可以使用以下示例代码连接到远程服务器并执行命令:
```python
import paramiko
# 创建 SSH 客户端
ssh = paramiko.SSHClient()
# 自动添加主机密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
ssh.connect('remote_server_ip', username='username', password='password')
# 执行远程命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
# 读取命令输出
output = stdout.read().decode()
# 打印输出结果
print(output)
# 关闭 SSH 连接
ssh.close()
```
这是一个简单的示例,您可以根据需要进行修改和扩展。
python paramiko sftp.put 报错Permission denied:
这个错误通常是由于远程服务器上的目录没有写入权限导致的。你需要确认以下几点:
1. 目标目录是否存在
2. 目标目录是否有写入权限
3. 用户是否有写入权限
你可以在程序中添加如下代码,来检查目标目录是否存在,并且具有写入权限:
```
import os
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='remote_server', port=22, username='username', password='password')
sftp = ssh.open_sftp()
remote_path = '/path/to/remote/directory'
try:
sftp.stat(remote_path)
except IOError:
sftp.mkdir(remote_path)
# 修改目录权限为可写
sftp.chmod(remote_path, 0o777)
local_path = '/path/to/local/file'
sftp.put(local_path, remote_path)
sftp.close()
ssh.close()
```
在这个代码中,我们首先检查目录是否存在,如果不存在则创建目录,并将其权限设置为可写。然后我们使用`sftp.put()`方法将本地文件传输到远程服务器上的目录中。