如何从python脚本运行snscrap命令?

如何从python脚本运行snscrap命令?,python,bash,subprocess,Python,Bash,Subprocess,我正在尝试下载一些推文。安装后,我可以运行如下命令下载一些tweet: snscrape --jsonl --max-results 4 twitter-search "#SherlockHolmes since:2015-01-01 until:2015-01-15" > sherlock_tweets.json 现在我想在python脚本中运行这个命令。据我所知,实现这一点的方法是使用subprocess.run方法。我使用以下代码从python运行命令: imp

我正在尝试下载一些推文。安装后,我可以运行如下命令下载一些tweet:

snscrape --jsonl --max-results 4 twitter-search "#SherlockHolmes since:2015-01-01 until:2015-01-15" > sherlock_tweets.json
现在我想在python脚本中运行这个命令。据我所知,实现这一点的方法是使用subprocess.run方法。我使用以下代码从python运行命令:

import subprocess

# Running this in a terminal works
cmd = '''snscrape --jsonl --max-results 4 twitter-search "#SherlockHolmes since:2015-01-01 until:2015-01-15" > sherlock_tweets.json'''
arglist = cmd.split(" ")

process = subprocess.run(arglist, shell=True)
但是,运行此命令会产生以下错误

usage: snscrape [-h] [--version] [-v] [--dump-locals] [--retry N] [-n N] [-f FORMAT | --jsonl] [--with-entity] [--since DATETIME] [--progress]
                {telegram-channel,weibo-user,vkontakte-user,instagram-user,instagram-hashtag,instagram-location,twitter-thread,twitter-search,reddit-user,reddit-subreddit,reddit-search,facebook-group,twitter-user,twitter-hashtag,twitter-list-posts,facebook-user,facebook-community,twitter-profile}
                ...
snscrape: error: the following arguments are required: scraper

为什么这两种情况下的行为不一样?如何从python脚本中运行命令,获得与在终端中输入命令完全相同的行为?

是否可以尝试发送整个字符串,而不是在空格上拆分?或者尝试将命令定义为列表文字,这样就不会在错误的点拆分参数?为什么要用三个单引号来指定cmd?传递字符串实际上是有效的。出于某种原因,我认为有必要将其分成一个列表,谢谢。