gpt4 book ai didi

python - 在 Python 中使用 subprocess.Popen 调用时,从命令行复制的命令未运行

转载 作者:行者123 更新时间:2023-12-01 04:50:19 24 4
gpt4 key购买 nike

令人费解...当我从这里复制这个curl命令并将其粘贴到我的Windows 7命令行中时,它可以在命令行中正常工作,但我无法让它在我的Python 2.7.9中执行脚本。说系统找不到指定的文件。使用“ping”或类似的东西打开 Popen 效果很好,所以我确信这是一个我没有看到的错误拼写错误。我希望有一双单独的眼睛和任何关于问题所在的评论。

proc = subprocess.Popen("curl --ntlm -u : --upload-file c:\\temp\\test.xlsx http://site.domain.com/sites/site/SiteDirectory/folder/test.xlsx")

最佳答案

看看 subprocess.Popen documentation 的后两段如果您还没有:

args should be a sequence of program arguments or else a single string. By default, the program to execute is the first item in args if args is a sequence. If args is a string, the interpretation is platform-dependent and described below. See the shell and executable arguments for additional differences from the default behavior. Unless otherwise stated, it is recommended to pass args as a sequence.

On Unix, if args is a string, the string is interpreted as the name or path of the program to execute. However, this can only be done if not passing arguments to the program. [emphasis mine]

相反,您应该传入一个列表,其中程序的每个参数(包括可执行文件名称本身)都作为列表中的单独项目给出。无论如何,这在跨平台环境中通常会更安全。

更新:我现在发现您使用的是 Windows,在这种情况下,UNIX 上的建议不适用。在 Windows 上,情况是 even more hairy 。最好的建议仍然是使用列表:)

更新2:另一个可能的问题(实际上是这个答案的评论中报告的OP问题)是因为curl可执行文件的完整路径是如果没有给出,如果Python解释器运行在具有不同PATH环境变量的环境中,则可能找不到。

关于python - 在 Python 中使用 subprocess.Popen 调用时,从命令行复制的命令未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28614560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com