kelamayi 2022-08-04 16:32 采纳率: 71.4%
浏览 20
已结题

调用外部程序写文件时,如何让主程序不等待?

主程序调用外部程序mysqldump备份数据库,代码如下:
try:
with gzip.open(bakfilname, "wb") as f:
p1 = subprocess.Popen(mysqldump + " -h %s --port %s -u %s -p%s %s --databases %s " % (pol_ip, pol_port, str_user, str_passwd, str_bk_options, str_schemas), stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=True)
f.writelines(p1.stdout)
output = p1.stderr.read()
if output == '':
log("OK")
else:
log(output)
exit(1)
except subprocess.CalledProcessError as e:
print("Error: process exited with status %s" % e.returncode)

期间主程序界面hang住,需要等待备份执行完。如果数据库比较大,等待时间很长。我现在需要不要等待,发出执行命令后,主程序依然可以做其它操作。
请问这个需求怎么实现?

  • 写回答

1条回答 默认 最新

  • 快乐小土狗 2022-08-04 16:40
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日
  • 创建了问题 8月4日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用