You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的subprocess.Popen执行带关键字参数的终端命令?

解决subprocess.Popen传递命令行参数的问题

你的问题出在传递参数的方式上:subprocess.Popen的列表参数里,每个元素必须对应终端命令里的单个独立参数,你把--user_id和它的ID值放在同一个字符串里,程序会把整个字符串当成一个参数,自然识别不了。

直接把每个选项和对应的值拆成列表的单独元素就行,比如:

from subprocess import Popen
# 正确的参数拆分方式,每个选项和值都是单独的列表元素
Popen(['goodreads-user-scraper', '--user_id', '149832357', '--output_dir', 'goodreads-data'])

如果需要添加更多参数,比如终端里的--output_dir goodreads-data,也要拆成'--output_dir'和'goodreads-data'两个元素,和终端命令的结构完全对应。

另外提一句:如果非要用整串命令的写法,可以加shell=True参数,但这种方式存在安全风险(比如参数包含特殊字符时容易出问题),不推荐使用,写法如下:

Popen('goodreads-user-scraper --user_id 149832357 --output_dir goodreads-data', shell=True)

内容的提问来源于stack exchange,提问作者costa rica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:05:27