如何在python中执行shell命令文件

2024-06-26 02:01:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我在执行以下shell命令时遇到问题。我在Windows10中。我不得不删除这里的用户授权,并将其保留为“tktk”,因为我不希望我的授权像那样出现在这里

curl 'https://pegasus-test.etflogic.io/portfolio/analyze' -H 'authority: pegasus-test.etflogic.io' -H 'pragma: no-cache' -H 'cache-control: no-cache' -H 'accept: application/json' -H 'authorization: tktk' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36' -H 'content-type: application/json' -H 'origin: https://akita.etflogic.com' -H 'sec-fetch-site: cross-site' -H 'sec-fetch-mode: cors' -H 'referer: https://akita.etflogic.com/portfolio-analysis' -H 'accept-encoding: gzip, deflate, br' -H 'accept-language: en-US,en;q=0.9' --data-binary '{"portfolio":{"currency":"usd","id":"8576e266-c6f4-44fe-a6a6-9c64869b55dd","name":"test1","records":[{"locale":"US","id":"df92931e-3063-4889-8e4b-100c66f14d22","name":"SSGA SPDR S&P 500 - SSgA Active Trust","secid":549535,"size":100,"ticker":"SPY US"}],"size_type":"notional","type":"primary"}}' --compressed > /tmp/jsonpayload

我将上述命令存储在test.sh文件中 我在执行上面的shell命令时遇到问题。它在linux终端上工作。但它在我的windows cmd上不起作用。我需要阅读上面的url,获取json对象并对其进行一些分析

我尝试的是:

import subprocess 
ans = subprocess.Popen(["bash",os.path.join(os.getcwd(), 'test.sh')])

这是失败的。好的

我试过了

subprocess.call(['test.sh'])

我收到错误“%1”不是有效的Win32应用程序


Tags: httpstest命令jsoncachetypeshshell
2条回答

尝试:

# Importing the necessary packages
$ from subprocess import call  

# Executing the test.sh script
$ call('sh test.sh 2>/dev/null', shell=True)

我将您的test.sh代码复制到我自己的test.sh文件中,并测试了一些不同的东西

尝试使用os.system来调用命令,而不是使用subprocess中的方法

这对我很有用:

import os
os.system(os.getcwd() + '/test.sh')

如果你喜欢os.path.join(os.getcwd(), 'test.sh')而不是我这里的,你也可以用它,没有什么大区别

我希望这能解决你的问题:)

相关问题 更多 >