python - 从 Python 运行 WinSCP 命令

标签 python command-line sftp winscp

我创建了以下名为 submitCmd.txt 的命令文件:

open <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9bf6e2f5faf6fedbfdefebf8f7f2fef5efe8b5f6e2e8fee9edfeb5f8f4f6" rel="noreferrer noopener nofollow">[email protected]</a> -privatekey=C:\Users\Mike\Desktop\uploader\mykey.ppk
put C:\Users\Mike\Desktop\uploader\files2Upload\myFile.xlsx /mnt/data/myFolder/
close
exit

当我从命令行运行上述脚本时:

winscp.com /script=C:\Users\Mike\Desktop\uploader\submitCmd.txt

运行成功。

但是,当我在 python 中尝试以下操作时:

cmdFile = r'C:\Users\Mike\Desktop\uploader\submitCmd.txt'
import subprocess
subprocess.run(["winscp.com", "/script=", cmdFile], shell=True)

我收到错误:

Searching for host...
Host "C" does not exist.
winscp> 

最佳答案

您的命令将像这样运行 WinSCP:

winscp.com /script= C:\Users\Mike\Desktop\uploader\submitCmd.txt

什么是无效语法。 /script= 后面不能有空格。

这应该有效:

subprocess.run(["winscp.com", "/script=" + cmdFile], shell=True)

如果您想避免创建脚本文件,请参阅:From Python run WinSCP commands in console .

关于python - 从 Python 运行 WinSCP 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53066584/

相关文章:

python - 可变移动平均线

python - 使用 Python 的 email.mime.multipart 发送 HTML 邮件时命名内联图像

shell - 如何使用 ShellExecute 在 'config' 模式下运行屏幕保护程序?操作系统覆盖我的 ShellExecute 调用

unix - 在 UNIX 中从远程服务器下载文件

ruby - 连接到 SFTP 版本 5 时,Ruby 文件名损坏

python - 从包含标题和分隔符的文本文件中提取列

python - 使用数据帧作为 .fillna() 的参数时,是否需要相同的形状?

ios - 如何正确编写plutil命令(数组和字符串)

Python 命令行参数 : Calling a function

python - 如何监听 (S)FTP 服务器上的更改?