gpt4 book ai didi

Python-将变量参数传递给 subprocess.call 的最佳方式

转载 作者:行者123 更新时间:2023-11-28 21:27:42 25 4
gpt4 key购买 nike

我尝试使用 python 脚本多次调用外部命令,每次使用不同的变量。

我看到有人建议使用 subprocess.call 来执行此操作,但是我找到的所有文档都没有解释如何传递此函数变量(例如从列表中)。

我尝试了多种不同的格式,我认为替换是最好的,但函数似乎不接受变量。我正在尝试开始工作的代码是:

#!/usr/bin/python
domain_list = ["google.com", "google.ie"]

from subprocess import call

for x in domain_list:
print x
cmd_list = ['dig', '+short', '%s'] %x
call(cmd_list, shell=True)

这是失败的:

Traceback (most recent call last):
File "./dnscheck.py", line 16, in <module>
cmd_list = ['dig', '+short', '%s'] %arg
TypeError: unsupported operand type(s) for %: 'list' and 'str'

我真的希望能够传递一堆不同的域(在列表中定义)来挖掘和接收这些域的 IP。

我刚开始使用 python,如果这是非常基础的,我很抱歉!

最佳答案

您正在尝试使用 modulo operator在列表中,我假设你想对最后一项进行字符串格式化,因为百分比符号被重载以使用字符串进行格式化,但是因为你只想插入没有任何格式的项目,你可以直接给它:

['dig', '+short', x]

如果你确实想使用格式化,你需要在字符串上做:

['dig', '+short', '%s' % x]

但是请注意,鉴于您没有进行任何格式化,这是毫无意义的。

关于Python-将变量参数传递给 subprocess.call 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10209511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com