我有一个批处理脚本(' 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脚本中,使文件夹正确压缩,控制台也会自动关闭。
答案 0 :(得分:0)
看看 Popen.poll() https://docs.python.org/3/library/subprocess.html
你可以检查它是否仍然像这样工作
while p.poll() is None:
print("Working...")
#...
但是甚至 Popen.poll()因管道而被卡住了。
使用 p.communicate 然后