小编tpd*_*nce的帖子

使用Python 2.7.5将文件夹中的所有压缩文件解压缩到同一文件夹

我想编写一个简单的脚本来遍历文件夹中的所有文件,并将压缩文件(.zip)解压缩到同一个文件夹.对于这个项目,我有一个包含近100个压缩.las文件的文件夹,我希望能够轻松地批量解压缩它们.我尝试使用以下脚本

import os, zipfile

folder = 'D:/GISData/LiDAR/SomeFolder'
extension = ".zip"

for item in os.listdir(folder):
    if item.endswith(extension):
        zipfile.ZipFile.extract(item)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行脚本时,我收到以下错误:

Traceback (most recent call last):
  File "D:/GISData/Tools/MO_Tools/BatchUnzip.py", line 10, in <module>
    extract = zipfile.ZipFile.extract(item)
TypeError: unbound method extract() must be called with ZipFile instance as first argument (got str instance instead)
Run Code Online (Sandbox Code Playgroud)

我正在使用python 2.7.5解释器.我查看了zipfile模块的文档(https://docs.python.org/2/library/zipfile.html#module-zipfile),我想了解我做错了什么.

我想在我看来,这个过程会是这样的:

  1. 获取文件夹名称
  2. 循环文件夹并查找zip文件
  3. 将zip文件解压缩到文件夹

但是,感谢Marcus,在实施建议时,我收到了另一个错误:

Traceback (most recent call last):
  File "D:/GISData/Tools/MO_Tools/BatchUnzip.py", line 12, in <module>
    zipfile.ZipFile(item).extract()
  File "C:\Python27\ArcGIS10.2\lib\zipfile.py", line 752, in __init__
    self.fp = open(file, modeDict[mode]) …
Run Code Online (Sandbox Code Playgroud)

python unzip zipfile python-2.7 arcpy

9
推荐指数
3
解决办法
3万
查看次数

标签 统计

arcpy ×1

python ×1

python-2.7 ×1

unzip ×1

zipfile ×1