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