为什么zipfile要解压缩xlsx文件?

2024-09-25 18:24:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用以下代码解压缩根文件夹中的所有zip文件夹;此代码在该线程中找到:

Unzip zip files in folders and subfolders with python

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文件不存在:

^{pr2}$

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

我怎样才能消除这个错误呢?在

我还尝试用r代替u作为根路径:

rootPath = r"//rootdir/myfolder"

我也有同样的错误。在

任何帮助都是真诚的感谢!在


Tags: path代码in文件夹os错误rootfiles
1条回答
网友
1楼 · 发布于 2024-09-25 18:24:52

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

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

这条线路出故障了。要了解这是如何发生的:

^{pr2}$

无论有没有额外的点,代码中仍然会出现问题:

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

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

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

Extract all members from the archive to the current working directory. path specifies a different directory to extract to...

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

相关问题 更多 >