一旦调用批处理脚本完成后如何关闭python脚本控制台?

时间:2016-04-21 12:55:43

标签: python windows batch-file

我有一个批处理脚本(' A.bat'),它正在压缩文件夹,如下所示:

for /d %%X in (D:/sample) do "c:\Program Files\7-Zip\7z.exe" a -mx "%%X.zip" "%%X\*"

现在我从python脚本中调用A.bat,如下所示:

import subprocess as sp
start_zip_batch = sp.Popen(['D:/A.bat'],stdin=sp.PIPE, stdout=sp.PIPE, stderr=sp.PIPE)
start_zip_batch.wait()

所以,现在发生的事情是我得到sample.zip文件夹,但它的大小为0KB,当我关闭脚本的控制台窗口时,它会显示其中的完整KB。

所以,我的问题是我应该添加到我的python脚本中,使文件夹正确压缩,控制台也会自动关闭。

1 个答案:

答案 0 :(得分:0)

看看 Popen.poll() https://docs.python.org/3/library/subprocess.html

你可以检查它是否仍然像这样工作

while p.poll() is None:
    print("Working...")
    #...

但是甚至 Popen.poll()因管道而被卡住了。

使用 p.communicate 然后