为什么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
将被引发。