【发布时间】:2017-05-01 20:20:00
【问题描述】:
我不想使用 paramiko 或 fabric 等外部模块。是否有任何 python 内置模块,我们可以通过它从 windows 传输文件。我知道对于 linux scp 命令有没有这样的 windows 有什么命令吗?
【问题讨论】:
-
您总是可以简单地使用套接字。
我不想使用 paramiko 或 fabric 等外部模块。是否有任何 python 内置模块,我们可以通过它从 windows 传输文件。我知道对于 linux scp 命令有没有这样的 windows 有什么命令吗?
【问题讨论】:
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()
【讨论】:
类似于scp 的东西是Powershell 中提供的@987654321@ cmdlet,您可以执行powershell 并运行@987654322@ 命令将文件从本地Windows 系统复制到另一个目录或远程服务器目录。
您需要先通过Set-ExecutionPolicy Unrestriced 将PowerShell 设置为无限制访问,然后您可以使用python 的subprocess 模块进行调用以执行所需的脚本。
也许this answer对你有帮助。
【讨论】:
FromSession 和 ToSession 选项,如 Copy-Item cmdlet 的最新文档中所述?还是您只是提议使用 UNC 目标路径?这同样适用于 cmd 的 copy、xcopy.exe 或 robocopy.exe。
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,文件名是您要下载的内容
【讨论】: