【问题标题】:How do I copy files from windows system to any other remote server from python script?如何从 python 脚本将文件从 Windows 系统复制到任何其他远程服务器?
【发布时间】:2017-05-01 20:20:00
【问题描述】:

我不想使用 paramiko 或 fabric 等外部模块。是否有任何 python 内置模块,我们可以通过它从 windows 传输文件。我知道对于 linux scp 命令有没有这样的 windows 有什么命令吗?

【问题讨论】:

  • 您总是可以简单地使用套接字。

标签: python windows


【解决方案1】:

Paramiko 稳定、简单,支持 Linux、OS X 和 Windows。

你可以通过 pip 安装:

pip install paramiko

简单演示:

import base64
import paramiko
key = paramiko.RSAKey(data=base64.b64decode(b'AAA...'))
client = paramiko.SSHClient()
client.get_host_keys().add('ssh.example.com', 'ssh-rsa', key)
client.connect('ssh.example.com', username='strongbad', password='thecheat')
stdin, stdout, stderr = client.exec_command('ls')
for line in stdout:
    print('... ' + line.strip('\n'))
client.close()

【讨论】:

    【解决方案2】:

    类似于scp 的东西是Powershell 中提供的@987654321@ cmdlet,您可以执行powershell 并运行@987654322@ 命令将文件从本地Windows 系统复制到另一个目录或远程服务器目录。

    您需要先通过Set-ExecutionPolicy Unrestriced 将PowerShell 设置为无限制访问,然后您可以使用python 的subprocess 模块进行调用以执行所需的脚本。

    也许this answer对你有帮助。

    【讨论】:

    • 您指的是 PowerShell 5 远程处理以及 FromSessionToSession 选项,如 Copy-Item cmdlet 的最新文档中所述?还是您只是提议使用 UNC 目标路径?这同样适用于 cmd 的 copyxcopy.exerobocopy.exe
    【解决方案3】:

    服务器

    python -m http.server

    这将在端口 8000 上创建一个 http 服务器

    客户

    python -c "import urllib; urllib.urlretrieve('http://x.x.x.x:8000/filename', 'filename')"

    其中 x.x.x.x 是您的服务器 ip,文件名是您要下载的内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 2013-08-13
      • 1970-01-01
      • 2016-02-25
      • 2011-07-20
      • 1970-01-01
      • 2013-06-09
      相关资源
      最近更新 更多