Я новичок в Python. Я пытаюсь преобразовать ниже команду bash скрипта в Python, используя подпроцесс. Я не получаю никакого вывода и не вижу никаких сбоев при выполнении моего сценария Python.Преобразование команды curl в python
Это команда bash, которую необходимо портировать на Python.
curl -u 'lawn:oldlawn!' -k -s -H 'Content-Type: application/json' -X GET 'https://192.168.135.20:443/api/json/v2/types/dev-objs/1'
Мой питон код:
get_curl():
curl = """curl -u 'lawn:oldlawn!' -k -s -H 'Content-Type: application/json' -X GET 'https://192.168.135.20:443/api/json/v2/types/dev-objs/1'"""
args = curl.split()
process = subprocess.Popen(args, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
print stdout
print stderr
# End of python code
После Выполнения get_curl()
, print stdout
и print stderr
ничего не печатает, хотя dev-objs/1
существует.
Когда я выполняю ту же команду, что и команда bash, она работает, и я вижу выход REST API.
Может ли кто-нибудь помочь мне в том, что здесь может быть неправильным? Благодаря
преобразовать строку в список аргументов try shlex.split, а не str.split. –
Просто любопытно; есть ли причина, по которой вы захотите выполнить 'curl' вместо использования' urllib'? – Dolda2000
bash ужасно, и подпроцесс тоже невелик. Используйте библиотеку [запросов] (http://docs.python-requests.org/en/master/user/quickstart/) вместо 'curl' (и вместо' urllib'). –