我想运行免费的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?
答案 0 :(得分: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)
我一直使用上面的例子。这使用了子进程库,考虑到您尝试运行特定于平台的可执行文件,该库在此用例中具有更多优点。