python - 从 Python 运行 WinSCP 命令
问题描述
我创建了以下带有名称的命令文件submitCmd.txt
:
open myname@ftpclients.myserve.com -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)
如果您想避免创建脚本文件,请参阅:从 Python 在控制台中运行 WinSCP 命令。
推荐阅读
- django - Django-Q 设置 Q_CLUSTER 'sync': True 不适用于单元测试
- ansible - 我可以在没有块的情况下在 ansible 角色/任务文件中定义变量吗?
- linux - Ansible scp 错误 - 没有这样的文件或目录
- r - tfruns 创建目录失败
- javascript - 如何从角度的对象数组中进行选择?
- python - 在 SQLAlchemy 中将 CTE 与多个引擎一起使用时出现 UnboundExecutionError
- simulation - 如何在 Anylogic 中创建具有不同标准的代理?
- ios - iOS 应用程序传输“尝试将空对象插入 com.webobjects.foundation.NSMutableDictionary”
- r - 在 r 中使用 list.files 的工作表名称
- c# - 如何在 ActionFilterAttribute 的 OnActionExecuting 中区分 C# 中的两个休息调用