解压 7z 文件出现句柄错误的解决方案

这两天,同事在项目上需要用 7z 来做压缩包解压
测试的时候遇到了一个错误
WindowsError 6 句柄错误。

这个问题的原因是为什么呢…目前只能猜测:可能是因为 7z 开了多线程进行解压,subprocess 中的 clearup 造成了句柄丢失

解决方案如下:
同事的代码大致是这样的,1. 引用 os 模块 2. 调用 Popen 函数执行命令语句

import os
os.Popen(‘命令’)

只要把 os.Popen 换成
subprocess.Popen(‘命令’)

from subprocess import Popen, PIPE
subprocess.Popen(‘命令’)

如上。