为什么zipfile试图解压xlsx文件?

我正在尝试使用下面的代码来解压缩根文件夹中的所有压缩文件夹; 这个代码被发现在这个线程上:

使用python解压缩文件夹和子文件夹中的zip文件

rootPath = u"//rootdir/myfolder" # CHOOSE ROOT FOLDER HERE pattern = '*.zip' for root, dirs, files in os.walk(rootPath): for filename in fnmatch.filter(files, pattern): print(os.path.join(root, filename)) zipfile.ZipFile(os.path.join(root, filename)).extractall(os.path.join(root, os.path.splitext(filename)[0])) 

但我不断收到这个错误说FileNotFoundError说xlsx文件不存在:

 Traceback (most recent call last): File "//rootdir/myfolder/Python code/unzip_helper.py", line 29, in <module> zipfile.ZipFile(os.path.join(root, filename)).extractall(os.path.join(root, os.path.splitext(filename)[0])) File "//rootdir/myfolder/Python\Python36-32\lib\zipfile.py", line 1491, in extractall self.extract(zipinfo, path, pwd) File "//myaccount/Local\Programs\Python\Python36-32\lib\zipfile.py", line 1479, in extract return self._extract_member(member, path, pwd) File "//myaccount/Local\Programs\Python\Python36-32\lib\zipfile.py", line 1542, in _extract_member open(targetpath, "wb") as target: FileNotFoundError: [Errno 2] No such file or directory: '\\rootdir\myfolder\._SGS Naked 3 01 WS Kappa Coated and a very long very long file name could this be a problem i dont think so.xlsx' 

我的问题是,为什么要解压这个excel文件呢?!

我怎样才能摆脱这个错误?

我也尝试使用r而不是你的rootPath:

 rootPath = r"//rootdir/myfolder" 

和我得到同样的错误。

任何帮助真正感激!

有些文件名和目录名可能在其名称中有多余的点,因此最后一行,与Windows文件名不同,Unix上可能有点:

 zipfile.ZipFile(os.path.join(root, filename)).extractall(os.path.join(root, os.path.splitext(filename)[0])) 

这一行失败。 要看看如何发生:

 >>> filename = "my.arch.zip" >>> root = "/my/path/to/mydir/" >>> os.path.join(root, os.path.splitext(filename)[0]) '/my/path/to/mydir/my.arch' 

有或没有额外的点,问题仍然会在您的代码中发生:

 >>> os.path.join(root, os.path.splitext(filename)[0]) '/my/path.to/mydir/arch' 

如果找不到'/my/path.to/mydir/arch' ,则会引发FileNotFoundError 。 我build议你在你的path中明确,否则你必须确保这些目录的存在。

ZipFile.extractall(path=None, members=None, pwd=None)

将存档中的所有成员提取到当前工作目录。 path指定一个不同的目录提取到…

除非path是一个存在的目录, FileNotFoundError将被引发。