gpt4 book ai didi

python - 为什么 subprocess.Popen 不起作用

转载 作者:太空狗 更新时间:2023-10-30 02:34:33 25 4
gpt4 key购买 nike

我尝试了很多东西,但出于某种原因,我无法使它们正常工作。我正在尝试使用 Python 脚本运行 MS VS 的 dumpbin 实用程序。

以下是我尝试过的方法(以及对我不起作用的方法)

1.

tempFile = open('C:\\Windows\\temp\\tempExports.txt', 'w')
command = '"C:/Program Files/Microsoft Visual Studio 8/VC/bin/dumpbin" /EXPORTS ' + dllFilePath
process = subprocess.Popen(command, stdout=tempFile)
process.wait()
tempFile.close()

2.

tempFile = open('C:\\Windows\\temp\\tempExports.txt', 'w')
command = 'C:/Program Files/Microsoft Visual Studio 8/VC/bin/dumpbin /EXPORTS ' + dllFilePath
process = subprocess.Popen(command, stdout=tempFile)
process.wait()
tempFile.close()

3.

tempFile = open('C:\\Windows\\temp\\tempExports.txt', 'w')
process = subprocess.Popen(['C:\\Program Files\\Microsoft Visual Studio 8\\VC\\bin\\dumpbin', '/EXPORTS', dllFilePath], stdout = tempFile)
process.wait()
tempFile.close()

有没有人知道如何在 Python 中正确地执行我正在尝试执行的操作 (dumpbin/EXPORTS C:\Windows\system32\kernel32.dll > tempfile.txt)?

最佳答案

Popen 的参数模式需要一个用于非 shell 调用的字符串列表和一个用于 shell 调用的字符串。这很容易修复。鉴于:

>>> command = '"C:/Program Files/Microsoft Visual Studio 8/VC/bin/dumpbin" /EXPORTS ' + dllFilePath

使用 shell=True 调用 subprocess.Popen:

>>> process = subprocess.Popen(command, stdout=tempFile, shell=True)

或使用shlex.split 创建参数列表:

>>> process = subprocess.Popen(shlex.split(command), stdout=tempFile)

关于python - 为什么 subprocess.Popen 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7823910/

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