gpt4 book ai didi

python子进程dpkg : I'm getting errors for something that runs in bash

转载 作者:太空狗 更新时间:2023-10-29 12:15:14 25 4
gpt4 key购买 nike

我正在尝试使用子进程模拟以下 bash 命令:

dpkg --get-selections > a_file.txt

我一直在 Python 解释器中尝试一些事情:

1 刚刚运行 dpkg

>>> args = ['dpkg','--get-selections']
>>> subprocess.call(args, shell=True)
dpkg: error: need an action option

2 将子流程分配给变量

>>> x = subprocess.call(args, shell=True)
dpkg: error: need an action option

3 将子进程输出重定向到文件

>>> args = ['dpkg','--get-selections', '>', 'a_file.txt']
>>> subprocess.call(args, shell=True)
dpkg: error: need an action option

4 重定向作为一个参数包含在数组中

>>> args = ['dpkg','--get-selections', '> a_file.txt']
>>> subprocess.call(args, shell=True)
dpkg: error: need an action option

5 不使用 shell=True

>>> x = subprocess.call(args)
dpkg: no packages found matching > a_file.txt
>>>

关于 dpkg: error: need an action option 在子进程中使用它,我似乎无法得到任何具体信息。

bash 命令工作正常,但语法似乎也没有任何问题。

干杯

最佳答案

使用 call()stdout 参数。此外,您通常不希望 shell=True - 在大多数情况下,您不需要它在 shell 中执行并且不使用它更安全(还记得 ShellShock 吗?)!

args = ['dpkg', '--get-selections']
with open('a_file.txt', 'w') as outfile:
subprocess.call(args, stdout=outfile)

如果你从 dpkg 本身得到一个错误,这意味着你传递了错误的参数。这与子流程无关。

关于python子进程dpkg : I'm getting errors for something that runs in bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643326/

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