从python调用时如何等待批处理文件结束?

您所在的位置:网站首页 python调用批处理 从python调用时如何等待批处理文件结束?

从python调用时如何等待批处理文件结束?

2022-05-23 07:12| 来源: 网络整理| 查看: 265

我有一个批处理文件,该文件正在压缩文件夹,如下所示(zip.bat):

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

批处理文件将压缩bin文件夹并可以正常工作。现在从python脚本调用此批处理,如下所示:

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

因此,现在使脚本执行时,它会创建bin.zip文件夹,但始终在其中显示0字节,过一会儿它停止响应,我需要手动将其关闭。bin文件夹约为403 mb。因此,请提出如何从python调用zip.bat的建议,以便它创建te zip文件夹,然后整齐地关闭。

解决方案

有几种等待完成的子过程方法。

check_call 如果您要基于命令返回码进行清理或报告,此功能很有用。

subprocess.check_call(args,*,stdin = None,stdout = None,stderr = None,shell = False)

使用参数运行命令。等待命令完成。如果返回码为零,则返回,否则引发CalledProcessError。CalledProcessError对象的returncode属性中将包含返回码。

文件

程序人生:程序员如何实现财富自由?

找工作千万不要找外包?BAT互联网大厂外包亲身经历

程序员的工资这么高,为什么还会有人离职?

技术人必看的各类工具书籍

程序新人入职,如何才能快速上手呢?

写给新入行的程序员小朋友

(前端)我在项目用到这十多种轮子助我提升开发效率,收藏

程序员必备T恤

神舟十一号,地面信号异常,现在请汇报您的具体位置

程序员为什么越老越贬值的厉害?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3