1

我想运行免费的 Microsoft 可执行文件psinfo.exe并将输出通过管道传输到嵌入在 python 程序中的文件。我已经能够从 python 程序运行 psinfo.exe 文件,但是将 psinfo 的输出通过管道传输到文件中不起作用。

如果我从 Windows 命令行运行简单的批处理文件:

psinfo.exe > filename.txt

然后 psinfo 的输出将通过管道传输到文件 filename.txt 中。psinfo 实用程序列出计算机信息,例如可用磁盘空间百分比和其他信息。如果我尝试使用单行批处理文件将 psinfo 数据通过管道传输到文件中,并在 Windows 中运行批处理文件,那么它可以工作,将数据传输到文件中。但是,如果我从 python 运行批处理文件,那么数据将不会通过管道传输到文件中。

如何直接运行批处理文件或 psinfo.exe 并将 psinfo 数据管道传输到在 python 程序中运行批处理文件或 psinfo.exe 的文件中?

4

1 回答 1

0
user = 'username'
passw = 'password'
logfile = '\path\to\logfile.txt'
host_info = subprocess.run(['psinfo', '\\\\' + hostname, '-u', user, '-p', pwd, '-d', '-nobanner'], stdout=logfile, stderr=subprocess.STDOUT)

我一直使用上面的例子。这利用了 subprocess 库,考虑到您正在尝试运行特定于平台的可执行文件,它在此用例中具有更多优点。

于 2018-05-01T14:39:33.893 回答