如何解决Python 从源递归解压缩到另一个目标
我不知道如何解决这个简单的任务,我想递归地将所有 zip/rar 文件从源文件夹提取到另一个目标文件夹,重新创建同一棵树。目前我已经创建了源文件夹树和目标文件夹树,但我不知道如何在目标旁边提取。
谢谢... 斯卡基
# required patool and pyunpack
import errno
import os,zipfile,pyunpack
from tkinter import Tk,filedialog,PhotoImage
root = Tk() # pointing root to Tk() to use it as Tk() in program.
root.withdraw() # Hides small tkinter window.
root.attributes('-topmost',True)
basis_folder = filedialog.askdirectory(title='Select source folder Compressed files')
extrac_folder = filedialog.askdirectory(title='Select destination folder for Un-Compressed')
for root,dirs,files in os.walk(basis_folder):
for filename in files:
if filename.endswith(".rar") :
print('RAR:'+os.path.join(root,filename))
elif filename.endswith(".zip"):
print('ZIP:'+os.path.join(root,filename))
name = os.path.splitext(os.path.basename(filename))[0]
print (name)
if filename.endswith(".rar") or filename.endswith(".zip"):
try:
arch = pyunpack.Archive(os.path.join(root,filename))
# os.mkdir(name)
arch.extractall(directory=root)
# os.remove(os.path.join(root,filename))
except Exception as e:
print("ERROR: BAD ARCHIVE "+os.path.join(root,filename))
print(e)
try:
# os.path.join(root,filename)os.remove(filename)
pass
except OSError as e: # this would be "except OSError,e:" before Python 2.6
if e.errno != errno.ENOENT: # errno.ENOENT = no such file or directory
raise # re-raise exception if a different error occured
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。