尽管传递了参数列表,为什么将变量传递给 subprocess.Popen 不起作用?

2023-11-29

我有一个脚本调用另一个Python脚本subprocess.Popen。但是因为我有参数存储在变量中

servers[server]['address']
servers[server]['port']
servers[server]['pass']

我无法执行该命令

p = subprocess.Popen(
    ["python mytool.py -a ", servers[server]['address'], "-x", servers[server]['port'], "-p", servers[server]['pass'], "some additional command"],
    shell=True,
    stdout=subprocess.PIPE
)

Drop shell=True. 论据Popen()在 Unix 上的处理方式不同,如果shell=True:

import sys
from subprocess import Popen, PIPE

# populate list of arguments
args = ["mytool.py"]
for opt, optname in zip("-a -x -p".split(), "address port pass".split()):
    args.extend([opt, str(servers[server][optname])])
args.extend("some additional command".split())

# run script
p = Popen([sys.executable or 'python'] + args, stdout=PIPE)
# use p.stdout here...
p.stdout.close()
p.wait()

请注意,通过shell=True对于具有外部输入的命令存在安全隐患,如警告所述在文档中.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尽管传递了参数列表,为什么将变量传递给 subprocess.Popen 不起作用? 的相关文章

随机推荐

  • 使用 jQuery AJAX 加载 php 内容

    我的问题 我有index html
  • VBscript - “系统找不到指定的文件”

    我正在尝试编写一个简短的 VBScript 它会打开 calc exe 和 wordpad exe 问题是 VBScript 不允许我打开 wordpad exe 我尝试以管理员身份运行该脚本 但这没有帮助 我的脚本如下所示 Set Wsh
  • 使用 jQuery 获取文件输入的选定文件名(不带路径)

    我用过这个 input type file val 获取选定的文件名 但它返回完整路径 如 C fakepath filename doc fakepath 部分实际上在那里 不确定它是否应该在那里 但这是我第一次使用文件上传的文件名 我怎
  • 在 JSfiddle 中添加图像 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想创建一个小提琴 在其中我必须添加图像 作为 div 的背景图像 我尝试使用左侧的添加资源 但它不起作用 我还尝试在我的文件夹结构中提供图像的完整路径 但这也不起作用 有人知道该怎
  • 在Python中从矩阵中选择列向量

    我想在 Python numpy 中的矩阵中索引列向量 并将其作为列向量而不是一维数组返回 x np array 1 2 3 4 x 1 gt array 2 4 Giving np transpose x 1 不是一个解决方案 继nump
  • 在 R 中绘制多项式回归曲线

    我有一个简单的多项式回归 如下所示 attach mtcars fit lt lm mpg hp I hp 2 现在 我绘制如下 gt plot mpg hp gt points hp fitted fit col red pch 20 这
  • Flash & Flex SDK/AS3 - 如何保持键盘焦点?

    我正在 Flex AS3 中编写 Flash 应用程序 但我似乎无法为其分配键盘焦点 我在开发初期就注意到了这个问题 并添加了一个带有 立即播放 按钮的启动屏幕 以吸引用户点击 但是 用户必须在应用程序上再次单击才能使键盘正常工作 更糟糕的
  • 如何在 Qt 项目中包含库

    我正在尝试创建一个使用 TagLib 库的项目 我不太确定到底该怎么做 我已经下载了标签库 1 11 1 我构建它如下 构建 zlib 首先让 CMake 创建一个 Visual Studio 解决方案文件 然后使用 Visual Stud
  • 使用访问器将属性设置为新分配的对象会导致内存泄漏

    我只是想确认以下是否会导致内存泄漏 h file property nonatomic retain MyObject foo m file synthesize foo self foo MyObject alloc init deall
  • ArrayList .get 比 HashMap .get 快吗?

    我本来以为HashMap随机访问单个值的速度比ArrayLists 也就是说 HashMap get key 应该比ArrayList get index 仅仅因为ArrayList必须遍历集合的每个元素才能达到其值 而HashMap才不是
  • ject() 必须从注入上下文中调用

    我正在尝试将我的 Angular 应用程序导出为 npm 模块以供其他应用程序使用 但遇到了一些困难 我在互联网上的其他地方找不到这个错误 我已经无能为力了 我按照这个教程进行操作 https medium com nikolaslebla
  • 为什么 Azure Bot Service Slack 连接器不转发事件和交互式消息?

    更新 2020 年 6 月 30 日 经过更多测试后 我获得了一些详细信息 可以帮助其他人识别我的问题 问题似乎是 Slack 正在将数据发送到 Azure Bot 服务 但该数据没有转发到我的代码 我已经能够毫无问题地使用机器人模拟器 并
  • IP 地址“::1”是什么?

    我正在没有网络连接的本地计算机上使用套接字 见下文 IPAddress address IPAddress Any doesn t work IPAddress address IPAddress Parse 1 works 那么到底是什么
  • 根据购物车总金额的百分比支付押金

    我从另一篇文章中获取了这段代码 基本上根据我的理解 这段代码试图强制购物车价格更改为 40 美元的固定金额 并将其作为预订费收取 我想要做的是强制购物车金额为购物车中所有产品总和的 20 我的网站是为了预订 所以我只想收取押金然后让他们在使
  • Woocommerce 3 中的自定义结账字段和运输方式 ajax 交互

    这个问题很快就会让我去邮寄 在 Woocommerce Checkout 中 我需要在地址中添加自定义字段 这个额外的字段用于function calculate shipping package array 现在显然 woocommerc
  • IOS - 无法以编程方式打开 Whatsapp 聊天,但可以通过 HTML 来打开

    我有一个网页 其锚点包含 href whatsapp xxxxxxxxx 如果我在 iPhone iOS 9 上单击它 它会在该联系人的聊天视图中打开 WhatsApp 我可以看到所有我与联系人进行的聊天 但是 如果我以编程方式执行此操作
  • RewriteRule - html 损坏 - 就像缺少 css

    我对这个规则有疑问 RewriteRule d more php books 1 tags 2 L 执行此规则后 一切正常 但页面显示不正确 就像缺少CSS一样 提前致谢 当您有 CSS 文件的相对 URL 时 可能会发生这种情况 如果您访
  • C++ ifstream从linux到arduino

    原始代码 include
  • 如何在 txt 文件中写入,iOS 7

    我正在尝试为 iOS 7 制作一个 iPhone 应用程序 我在我的项目中创建了一个txt文件 并且希望能够从txt文件中写入文本 当我按下写入按钮时 写入并能够读取数据 当我按下读取按钮时 读 当我尝试读取数据时 我发现这种方法有效 IB
  • 尽管传递了参数列表,为什么将变量传递给 subprocess.Popen 不起作用?

    我有一个脚本调用另一个Python脚本subprocess Popen 但是因为我有参数存储在变量中 servers server address servers server port servers server pass 我无法执行该