【发布时间】:2023-08-02 03:09:01
【问题描述】:
我正在使用 python 子进程解压缩一个 zip 存档。我的代码如下:
subprocess.Popen(['unzip', '{}.zip'.format(inputFile), '-d', output_directory])
解压后是否有一个解压缩命令来删除 zip 源文件?如果不是,我如何通过管道将rm 传递给subprocess.Popen,但要确保它首先等待文件解压缩?
谢谢。
【问题讨论】:
-
为什么不使用
zipfile库? *.com/questions/3451111/unzipping-files-in-python 这是有关如何删除文件的链接答案。 *.com/questions/6996603/… -
此外,如果您的 python 版本允许,最好使用
subprocess.run而不是subprocess.Popen。见*.com/a/39187984/6555423 或python docs -
好吧,我将使用 os.remove 我只是想确保它仅在文件被提取后才会删除文件,这就是为什么我想将它打开到子进程
-
好的。
subprocess用于启动可以与 Python 脚本并行运行的新进程。如果您想等待启动的进程完成(例如,您可以删除它使用的文件),您可以在 Python 2.7 中使用subprocess.call()。但是请注意,如果您的脚本除了等待之外别无他法,则没有任何理由使用subprocess,因为您可以使用zipfile模块解压缩文件。 -
或者您也可以使用
subprocess.call等待命令完成。
标签: python python-2.7 subprocess unzip