如何使用Python使用subprocess删除zip文件夹中的文件

2024-04-19 02:56:26 发布

您现在位置:Python中文网/ 问答频道 /正文

[Python2.6.5]简单的问题,但似乎找不到任何文档或以前的问题来回答我的问题。我试图删除一个ZIP文件夹中的2个文件(如果有必要的话,它在ZIP文件夹中的2个文件夹)。我想使用subprocess调用7Zip来删除文件,但我甚至不知道如何启动该进程。现在我只能打开应用程序。理想情况下,我希望运行python脚本,将文件名硬编码到脚本中,并让7zip在可能的情况下自动删除那些文件,而不打开应用程序。你知道吗

到目前为止我所拥有的:

import subprocess, os


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

这成功地打开了应用程序,但我想运行,并让它自动删除文件,甚至不打开,如果可能的话。你知道吗

  • 注:谢谢大家的帮助。客户的需求最终改变了,所以我不需要再使用这种逻辑了。你知道吗

Tags: 文件文档import脚本文件夹应用程序编码进程
2条回答

您需要使用7zip的command line version。然后根据this documentation,您应该能够像这样删除文件。你知道吗

7z d archive.zip deleteme.ext

注意:对于那些认为Python的zipfile模块是一个很好的解决方案的人,我浏览了这个模块,它看起来不支持从存档中删除文件。你知道吗

像这样:

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

相关问题 更多 >