[Python 2.6.5]简单的问题,但似乎找不到任何文档或先前的问题来回答我的问题。我正在尝试删除ZIP文件夹中的2个文件(如果重要,则删除ZIP文件夹中的2个文件夹)。我想使用子进程调用7Zip删除文件,但是不知道如何启动该进程。到目前为止,我只能打开该应用程序。理想情况下,我想运行python脚本,将文件名硬编码到脚本中,并让7zip只是自动删除这些文件,而无需打开应用程序。
到目前为止我所拥有的:
import subprocess, os
rawLocation = 'SomeLocation\7-ZipPortable.exe'
subprocess.Popen([rawLocation])
这成功打开了应用程序,但是我想运行并让它自动删除文件,甚至在可能的情况下也不会打开。
答案 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