【问题标题】:curl command works in powershell, but not with python subprocess.run()curl 命令适用于 powershell,但不适用于 python subprocess.run()
【发布时间】:2021-09-01 18:22:01
【问题描述】:

我执行一个 curl 命令来获取一个 html,在 powershell 中包含一个单词的含义,它按预期工作。 然后我想用 python 和 subprocess.run() 执行它,它没有返回错误,我看到 run() 中的参数被正确解析,但返回的页面是网站的“找不到单词”页面,而不是curl 在 powershell 中返回的页面。我希望得到与在 powershell 或终端中正常执行命令相同的结果。

    import sys, subprocess
    response = subprocess.run(["curl", f"http://rechnik.info/{sys.argv[1]}", "-o", "query.html"], encoding='utf-8', capture_output=True)
    print(response)
    exit()

【问题讨论】:

  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)应包括所需的行为、特定问题或错误所需的最短代码作为格式化文本(不是图像)在问题本身中。没有明确的问题陈述的问题对其他读者没有用处。请参阅:minimal reproducible example
  • @Stati Kosev - 我无法复制。你如何运行代码?
  • 我在 pycharm 或 powershell 更新中运行它:当我在 linux 上尝试相同的目标时,我发现它与 os.system 完美配合,这也是我在 windows 上尝试的第一种方法.在我看来这是 Windows 上的一些问题,我想在 linux 上它也可以与子进程一起使用

标签: python curl subprocess


【解决方案1】:

有时在 Windows 上 curl 未安装。尝试改用reqursts,这样它就可以在每个操作系统上运行。

【讨论】:

    猜你喜欢
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2011-03-28
    相关资源
    最近更新 更多