如何使用子流程通过Python

时间:2019-01-24 16:07:41

标签: python io subprocess 7zip

[Python 2.6.5]简单的问题,但似乎找不到任何文档或先前的问题来回答我的问题。我正在尝试删除ZIP文件夹中的2个文件(如果重要,则删除ZIP文件夹中的2个文件夹)。我想使用子进程调用7Zip删除文件,但是不知道如何启动该进程。到目前为止,我只能打开该应用程序。理想情况下,我想运行python脚本,将文件名硬编码到脚本中,并让7zip只是自动删除这些文件,而无需打开应用程序。

到目前为止我所拥有的:

import subprocess, os


rawLocation = 'SomeLocation\7-ZipPortable.exe'
subprocess.Popen([rawLocation])

这成功打开了应用程序,但是我想运行并让它自动删除文件,甚至在可能的情况下也不会打开。

  • 注意:谢谢大家的帮助。客户的需求最终发生了变化,因此我不再需要使用此逻辑。

2 个答案:

答案 0 :(得分:1)

您需要使用7zip的command line version。然后根据this documentation,您应该可以删除文件。

7z d archive.zip deleteme.ext

注意:对于可能认为Python的zipfile模块是一个很好的解决方案的人,我浏览了该模块,但它似乎不支持从存档中删除文件。

答案 1 :(得分:0)

类似这样的东西:

from subprocess import call

delete_me = "note.txt"
zip_file = "archive.zip"
try:
    call(['7z d', zip_file, delete_me])
except OSError:
    # handle errors here
    pass