当前位置:首页python > 正文

Python实现Windows和Linux之间互相传输文件(文件夹)的方法

作者:野牛程序员:2023-12-28 19:53:50python阅读 2479

在Windows和Linux之间传输文件或文件夹,可以使用一些跨平台的工具或协议。以下是一个可能的解决方案,其中使用了Python的paramiko库来实现SSH协议进行文件传输。请注意,这需要确保Windows机器上有Python和paramiko库。

首先,需要在两台机器上安装paramiko库。可以使用以下命令:

pip install paramiko

然后,可以使用以下Python脚本在Windows和Linux之间传输文件:

import paramiko
import os

def transfer_file(username, password, host, port, source_path, destination_path, is_folder=False):
    transport = paramiko.Transport((host, port))
    transport.connect(username=username, password=password)

    sftp = paramiko.SFTPClient.from_transport(transport)

    if is_folder:
        # 递归上传整个文件夹
        for root, dirs, files in os.walk(source_path):
            remote_path = os.path.join(destination_path, os.path.relpath(root, source_path))
            sftp.mkdir(remote_path)
            for file in files:
                local_file_path = os.path.join(root, file)
                remote_file_path = os.path.join(remote_path, file)
                sftp.put(local_file_path, remote_file_path)
    else:
        sftp.put(source_path, destination_path)

    sftp.close()
    transport.close()

# 示例用法
transfer_file('your_username', 'your_password', 'linux_host', 22, 'local_file.txt', '/remote/path/file.txt')
# 如果要传输文件夹,将 is_folder 参数设置为 True
# transfer_file('your_username', 'your_password', 'linux_host', 22, 'local_folder', '/remote/path', is_folder=True)

如果要传输文件夹,将 is_folder 参数设置为 True,并相应地调整本地和远程路径。

此脚本使用SSH协议通过SFTP进行文件传输,确保Linux主机已启用SSH服务。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击