python 从Windows拷贝文件到linux
时间: 2024-04-10 22:33:07 浏览: 139
要在 Python 中从 Windows 主机拷贝文件到 Linux 主机,你可以使用 Paramiko 库来实现 SSH 连接和文件传输。以下是一个示例代码:
```python
import paramiko
def copy_file_windows_to_linux(source_file, destination_file, windows_host, windows_user, windows_password, linux_host, linux_user, linux_password):
# 创建 SSH 客户端
ssh_client = paramiko.SSHClient()
ssh_client.load_system_host_keys()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接 Windows 主机
ssh_client.connect(windows_host, username=windows_user, password=windows_password)
# 使用 SFTP 进行文件传输
sftp = ssh_client.open_sftp()
# 从 Windows 主机下载文件到本地
sftp.get(source_file, destination_file)
# 关闭 SFTP 连接
sftp.close()
# 关闭 SSH 连接
ssh_client.close()
# 创建 SSH 客户端
ssh_client = paramiko.SSHClient()
ssh_client.load_system_host_keys()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接 Linux 主机
ssh_client.connect(linux_host, username=linux_user, password=linux_password)
# 使用 SFTP 进行文件传输
sftp = ssh_client.open_sftp()
# 将文件上传到 Linux 主机
sftp.put(destination_file, destination_file)
# 关闭 SFTP 连接
sftp.close()
# 关闭 SSH 连接
ssh_client.close()
print("文件从 Windows 主机成功复制到 Linux 主机!")
except Exception as e:
print("连接或文件上传到 Linux 主机时出现错误:", str(e))
except Exception as e:
print("连接或文件下载到 Windows 主机时出现错误:", str(e))
# 调用函数进行文件拷贝
copy_file_windows_to_linux('C:\\path\\to\\file.txt', '/path/on/linux/file.txt', 'windows_host', 'windows_user', 'windows_password', 'linux_host', 'linux_user', 'linux_password')
```
在上面的代码中,你需要将 `'C:\\path\\to\\file.txt'` 替换为实际的 Windows 文件路径,`'/path/on/linux/file.txt'` 替换为实际的 Linux 目标路径,以及 `'windows_host'`、`'windows_user'`、`'windows_password'`、`'linux_host'`、`'linux_user'` 和 `'linux_password'` 替换为实际的主机和凭据信息。
这段代码使用 Paramiko 库创建 SSH 连接,然后使用 SFTP 进行文件传输。首先,它从 Windows 主机下载文件到控制节点,然后将文件上传到 Linux 主机。最后,它在控制台打印成功消息或错误消息。
确保在运行代码之前已经安装了 Paramiko 库。
阅读全文