Python实现Windows和Linux之间互相传输文件(文件夹)的方法
作者:野牛程序员:2023-12-28 19:53:50python阅读 3007
在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

