0

我在路径为“C:\Downloads\Project”的目录中工作我在“Project”(Project\Insights)文件夹中有一个“Insights”文件夹,其中包含多个名称为“Text1.txt”、“Text2”的文本文件.txt"..."Text30.txt"。每 10 个文本文件应该被压缩成一个 zip 文件到同一个“Insights”文件夹 (...\Insights\zip1.zip)。

如何在 Python 中做到这一点?

当我尝试压缩时,文本文件以 zip 文件中的目录结构“...\Project\Insights\text1.txt”存储。但我不希望文件以任何目录结构存储。

from zipfile import ZipFile

#dictionary of files and data in it (dummy data)
file_data={"C:\Downloads\Project\Insights\Text1.txt":"value1", 
            "C:\Downloads\Project\Insights\Text2.txt":"value2"
          }

zipp = ZipFile('Insights//zip1.zip', 'w')
for k, v in file_data.items():
    zipp.write(k)
zipp.close()

此片段生成具有整个目录结构的 zip 文件。但我只想要文本文件

4

1 回答 1

0

试试这个片段:

import os
import zipfile
    
def zipdir(path, ziph):
    # ziph is zipfile handle
    for root, dirs, files in os.walk(path):
        for file in files:
            ziph.write(os.path.join(root, file), 
                       os.path.relpath(os.path.join(root, file), 
                                       os.path.join(path, '..')))
      
zipf = zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED)
zipdir('tmp/', zipf)
zipf.close()
于 2021-12-31T07:57:31.753 回答