我正在使用 python 子行程來解壓縮 zip 存檔。我的代碼如下:
subprocess.Popen(['unzip', '{}.zip'.format(inputFile), '-d', output_directory])
解壓后是否有解壓命令洗掉 zip 源檔案?如果不是,我如何通過管道將 anrm連接到subprocess.Popen但以確保它首先等待檔案解壓縮?
謝謝。
uj5u.com熱心網友回復:
您可以&&在 Shell 中使用,只有在第一個命令成功時才會執行第二個命令:
import subprocess
import os
values = {'zipFile': '/tmp/simple-grid.zip', 'outDir': '/tmp/foo'}
command = 'unzip {zipFile} -d {outDir} && rm {zipFile}'.format(**values)
proc = subprocess.Popen(command, shell=True)
_ = proc.communicate()
print('Success' if proc.returncode == 0 else 'Error')
或者,os.remove()如果unzip成功:
inputFile = values['zipFile']
output_directory = values['outDir']
proc = subprocess.Popen(
['unzip', '{}'.format(inputFile), '-d', output_directory]
)
_ = proc.communicate() # communicate blocks!
if proc.returncode == 0:
os.remove(values['zipFile'])
print('Success' if not os.path.exists(inputFile) else 'Error')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/357679.html
標籤:Python python-2.7 子流程 解压
上一篇:將文本決議為列
