zipfile.zip_deflated
时间: 2023-05-04 13:01:47 浏览: 284
Q: 'zipfile.zip_deflated' 是什么意思?
A: 'zipfile.zip_deflated' 是 ZIP 文件中的一种压缩方式,使用的是 DEFLATE 压缩算法。它是一种常见的压缩方式,可以有效地减小文件的大小,节省存储空间和数据传输带宽。
相关问题
import zipfile import os def compress_file(file_path, zip_path): with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf: zipf.write(file_path, arcname=file_path) dch = '911C' dh = '01' file_path = os.path.join(r'D:/gangko/moxingku', dch + dh ) zip_path = os.path.join(r'D:/gangko/zip', dch + dh +'.zip') compress_file(file_path, zip_path) 这段代码压缩的是gangko/moxingku/911C01一连串,如何改,只压缩911C01文件夹。
要只压缩文件夹 `911C01`,你可以使用 `shutil` 模块的 `make_archive` 函数来实现。下面是修改后的代码示例:
```python
import shutil
dch = '911C'
dh = '01'
folder_path = os.path.join(r'D:/gangko/moxingku', dch + dh)
zip_path = os.path.join(r'D:/gangko/zip', dch + dh + '.zip')
shutil.make_archive(zip_path, 'zip', folder_path)
```
在上述代码中,我们使用 `shutil.make_archive` 函数来创建压缩文件。第一个参数是输出的压缩文件路径,第二个参数是压缩文件的格式(这里是 `'zip'`),第三个参数是要压缩的文件夹路径。
运行上述代码后,会在指定的输出路径生成一个名为 `911C01.zip` 的ZIP文件,其中只包含了文件夹 `911C01` 中的内容。
请确保已经导入了 `shutil` 模块,并将 `compress_file` 函数的相关代码注释或删除,因为我们现在使用了 `shutil.make_archive` 来进行压缩。
如果你需要更多帮助,请提供更多详细信息。
PermissionError Traceback (most recent call last) Cell In[1], line 58 54 print("运行结束") 57 # 保存Excel文件 ---> 58 workbook.save('2009-1.xlsx') File D:\ppy\lib\site-packages\openpyxl\workbook\workbook.py:407, in Workbook.save(self, filename) 405 if self.write_only and not self.worksheets: 406 self.create_sheet() --> 407 save_workbook(self, filename) File D:\ppy\lib\site-packages\openpyxl\writer\excel.py:291, in save_workbook(workbook, filename) 279 def save_workbook(workbook, filename): 280 """Save the given workbook on the filesystem under the name filename. 281 282 :param workbook: the workbook to save (...) 289 290 """ --> 291 archive = ZipFile(filename, 'w', ZIP_DEFLATED, allowZip64=True) 292 writer = ExcelWriter(workbook, archive) 293 writer.save() File D:\ppy\lib\zipfile.py:1249, in ZipFile.__init__(self, file, mode, compression, allowZip64, compresslevel, strict_timestamps) 1247 while True: 1248 try: -> 1249 self.fp = io.open(file, filemode) 1250 except OSError: 1251 if filemode in modeDict: PermissionError: [Errno 13] Permission denied: '2009-1.xlsx'
这个错误是因为你尝试在一个没有写入权限的位置保存Excel文件导致的。你需要将保存的文件路径更改为一个具有写入权限的位置。
例如,可以将文件保存到当前工作目录下(即运行代码的文件夹),或者将文件保存到用户文件夹下的一个子文件夹中,这些位置通常都具有写入权限。
你可以试着将保存Excel文件的代码改为以下形式:
```python
import os
from openpyxl import Workbook
# 创建一个新的Excel文件
workbook = Workbook()
# 获取当前工作目录
current_dir = os.getcwd()
# 保存Excel文件到当前工作目录下
excel_file_path = os.path.join(current_dir, '2009-1.xlsx')
workbook.save(excel_file_path)
print("运行结束")
```
这个代码会将Excel文件保存到当前工作目录下,并且使用`os.getcwd()`函数获取当前工作目录的路径。你也可以将`current_dir`更改为其他具有写入权限的文件夹路径。
阅读全文