将给定目录中的文件压缩到同一目录 python
zip the files in a given directory into same directory python
我在路径为“C:\Downloads\Project”的目录中工作 我在“项目”(Project\Insights) 文件夹中有一个文件夹“Insights”,其中包含多个名称为“Text1.txt”、“Text2.txt”……Text30.txt”。每 10 个文本文件都应该被压缩成一个 zip 文件到同一个“Insights”文件夹中 (...\Insights\zip1.zip)。
如何在 Python 中完成?
当我尝试压缩时,文本文件以目录结构“...\Project\Insights\text1.txt”存储在 zip 文件中。但是我不希望文件以任何目录结构存储。
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 文件。但我只想要文本文件
试试这个片段:
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()
我在路径为“C:\Downloads\Project”的目录中工作 我在“项目”(Project\Insights) 文件夹中有一个文件夹“Insights”,其中包含多个名称为“Text1.txt”、“Text2.txt”……Text30.txt”。每 10 个文本文件都应该被压缩成一个 zip 文件到同一个“Insights”文件夹中 (...\Insights\zip1.zip)。
如何在 Python 中完成?
当我尝试压缩时,文本文件以目录结构“...\Project\Insights\text1.txt”存储在 zip 文件中。但是我不希望文件以任何目录结构存储。
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 文件。但我只想要文本文件
试试这个片段:
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()