python 执行系统命令(curl)_如何在Python中执行Curl

您使用的命令无法工作,因为单引号在Windows中没有特殊含义,它们是按字面方式传递给curl程序的。因此,如果您从Linux复制了命令行(它可以在那里工作),那么在这里就不起作用了(例如,对于接收'appuser和appuser!@3pass'的login/password字段,Content-Type: text/xml;charset=UTF-8根本不受保护,被理解为两个独立的参数)

从控制台进行简单测试:K:\progs\cli>curl.exe -V

curl 7.50.3 (x86_64-pc-win32) libcurl/7.50.3 OpenSSL/1.0.2h nghttp2/1.14.1

Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps

telnet tftp

Features: AsynchDNS IPv6 Largefile NTLM SSL HTTP2

(如果我将"-V"与双引号一起使用,也可以),但是如果我在版本arg上使用简单的引号,则可以得到:

^{pr2}$

正如o11c所评论的,有一个python模块来处理curl,最好还是用它。在

对于其他无法执行其他操作的情况,不推荐使用os.system。例如,使用subprocess.check_call更好(python3.5有一个统一的run函数):已检查返回代码,如果出现错误,则引发异常

无需手动传递和引用参数的能力。在

我们来修正一下你的例子:

你可能感兴趣的:(python,执行系统命令(curl))