我有一个zip文件,其内部文件夹结构如下:
CODE
`-- CODE
`-- CODE
`-- CODE
|-- 2019
| |-- file1.txt
| `-- file2.txt
|-- 2020
| `-- file3.txt
`-- 2021
|-- file4.txt
`-- file5.txt
我想按照以下给定的文件夹结构解压缩文件:
CODE
|-- 2019
| |-- file1.txt
| `-- file2.txt
|-- 2020
| `-- file3.txt
`-- 2021
|-- file4.txt
`-- file5.txt
我可以硬编码它,但由于这是一个重复的请求,我是否可以以编程方式处理,仅解压那些有文件的文件夹。
我的当前代码如下:
def unzipfiles(incoming_path):
for path,subdirs,files in os.walk(incoming_path):
for name in files:
if(name.endswith('.zip')):
with zipfile.ZipFile(os.path.join(incoming_path,name), 'r') as zip_ref:
for file in zip_ref.namelist():
out_path=os.path.join(incoming_path,file)
out_path=out_path.replace('CODE/','')
if(out_path[:-1]!=incoming_path):
zip_ref.extract(file,out_path)
然而,它并没有正确地工作,并且比zip文件中存在的目录创建了更多的文件夹。